docs(devcontainer): update readme

- remove Windows without WSL step
- update 'remote containers extension' to 'dev containers extension'
- remove invalid warning on directories creation
- simplify customizations section
  - remove "publish a port" since it can be done at runtime now
  - remove "run other services" since it's rather unneeded in this case
  - expand documentation on custom welcome script and where to specify the bind mount
    - use bullet points instead of subsections headings
This commit is contained in:
Quentin McGaw
2024-10-10 08:33:33 +00:00
parent 5b2923ca65
commit ea31886299

View File

@@ -2,12 +2,12 @@
Development container that can be used with VSCode. Development container that can be used with VSCode.
It works on Linux, Windows and OSX. It works on Linux, Windows (WSL2) and OSX.
## Requirements ## Requirements
- [VS code](https://code.visualstudio.com/download) installed - [VS code](https://code.visualstudio.com/download) installed
- [VS code remote containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) installed - [VS code dev containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) installed
- [Docker](https://www.docker.com/products/docker-desktop) installed and running - [Docker](https://www.docker.com/products/docker-desktop) installed and running
- [Docker Compose](https://docs.docker.com/compose/install/) installed - [Docker Compose](https://docs.docker.com/compose/install/) installed
@@ -19,51 +19,29 @@ It works on Linux, Windows and OSX.
touch ~/.gitconfig ~/.zsh_history touch ~/.gitconfig ~/.zsh_history
``` ```
Note that the development container will create the empty directories `~/.docker`, `~/.ssh` and `~/.kube` if you don't have them. 1. **For OSX hosts**: ensure your home directory `~` is accessible by Docker.
1. **For Docker on OSX or Windows without WSL**: ensure your home directory `~` is accessible by Docker.
1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P). 1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P).
1. Select `Remote-Containers: Open Folder in Container...` and choose the project directory. 1. Select `Dev-Containers: Open Folder in Container...` and choose the project directory.
## Customization ## Customization
### Customize the image For customizations to take effect, you should "rebuild and reopen":
You can make changes to the [Dockerfile](Dockerfile) and then rebuild the image. For example, your Dockerfile could be: 1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P)
2. Select `Dev-Containers: Rebuild Container`
```Dockerfile Customizations available are notably:
FROM qmcgaw/godevcontainer
RUN apk add curl
```
To rebuild the image, either: - Changes to the Docker image in [Dockerfile](Dockerfile)
- Changes to VSCode **settings** and **extensions** in [devcontainer.json](devcontainer.json).
- With VSCode through the command palette, select `Remote-Containers: Rebuild and reopen in container` - Change the entrypoint script by adding in [docker-compose.yml](docker-compose.yml) a bind mount to a shell script to `/root/.welcome.sh` to replace the [current welcome script](https://github.com/qdm12/godevcontainer/blob/master/shell/.welcome.sh). For example:
- 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](devcontainer.json) definition file.
### Entrypoint script
You can bind mount a shell script to `/root/.welcome.sh` to replace the [current welcome script](https://github.com/qdm12/godevcontainer/blob/master/shell/.welcome.sh).
### Publish a port
To access a port from your host to your development container, publish a port in [docker-compose.yml](docker-compose.yml). You can also now do it directly with VSCode without restarting the container.
### Run other services
1. Modify [docker-compose.yml](docker-compose.yml) to launch other services at the same time as this development container, such as a test database:
```yml ```yml
database: volumes:
image: postgres # ...
restart: always - ./.welcome.sh:/root/.welcome.sh:ro
environment: # ...
POSTGRES_PASSWORD: password
``` ```
1. In [devcontainer.json](devcontainer.json), change the line `"runServices": ["vscode"],` to `"runServices": ["vscode", "database"],`. - Change the docker container configuration in [docker-compose.yml](docker-compose.yml).
1. In the VS code command palette, rebuild the container. - More customizations available are documented in the [devcontainer.json reference](https://containers.dev/implementors/json_reference/).