docs/desktop/dev-environments/specify.md

1.5 KiB

description keywords title
Dev Environments Dev Environments, share, collaborate, local, Dockerfile, specify, base image Specify a Dockerfile or base image

Specify a Dockerfile

Use a JSON file to specify a Dockerfile which in turn defines your Dev Environment. You must include this as part of the .docker folder and then add it as a config.json file. For example:

{
    "dockerfile": "Dockerfile.devenv"
}

Next, define the dependencies you want to include in your Dockerfile.devenv.

While some images or Dockerfiles include a non-root user, many base images and Dockerfiles do not. Fortunately, you can add a non-root user named vscode. If you include Docker tooling, for example the Docker CLI or docker compose, in the Dockerfile.devenv, you need the vscode user to be included in the docker group.

# syntax=docker/dockerfile:1

FROM <your base image>

RUN useradd -s /bin/bash -m vscode \
 && groupadd docker \
 && usermod -aG docker vscode

USER vscode

Specify a base image

If you already have an image built, you can specify it as a base image to define your Dev Environment. You must include this as part of the .docker folder and then add it as a config.json file. For example, to use the Jekyll base image, add:

{
  "image": "jekyll/jekyll"
}

Note

This configuration is to unblock users for the Beta release only. We may move this configuration for single and multi-container applications to a Compose-based implementation in future releases.