prometheus_wireguard_exporter/.devcontainer/README.md
2021-07-17 11:49:23 -07:00

2.6 KiB

Development container

Development container that can be used with VSCode.

It works on Linux, Windows and OSX.

Requirements

Setup

  1. Create the following files on your host if you don't have them:

    touch ~/.gitconfig ~/.zsh_history
    

    Note that the development container will create the empty directories ~/.docker, ~/.ssh and ~/.kube if you don't have them.

  2. For Docker on OSX or Windows without WSL: ensure your home directory ~ is accessible by Docker.

  3. For Docker on Windows without WSL: if you want to use SSH keys, bind mount your host ~/.ssh to /tmp/.ssh instead of ~/.ssh by changing the volumes section in the docker-compose.yml.

  4. Open the command palette in Visual Studio Code (CTRL+SHIFT+P).

  5. Select Remote-Containers: Open Folder in Container... and choose the project directory.

Customization

Customize the image

You can make changes to the Dockerfile and then rebuild the image. For example, your Dockerfile could be:

FROM qmcgaw/rustdevcontainer
RUN apk add curl

To rebuild the image, either:

  • With VSCode through the command palette, select Remote-Containers: Rebuild and reopen in container
  • With a terminal, go to this directory and docker-compose build

Customize VS code settings

You can customize settings and extensions in the devcontainer.json definition file.

Entrypoint script

You can bind mount a shell script to /home/vscode/.welcome.sh to replace the current welcome script.

Publish a port

To access a port from your host to your development container, publish a port in docker-compose.yml. You can also now do it directly with VSCode without restarting the container.

Run other services

  1. Modify docker-compose.yml to launch other services at the same time as this development container, such as a test database:

      database:
        image: postgres
        restart: always
        environment:
          POSTGRES_PASSWORD: password
    
  2. In devcontainer.json, change the line "runServices": ["vscode"], to "runServices": ["vscode", "database"],.

  3. In the VS code command palette, rebuild the container.