49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
# Development container
|
|
|
|
Development container that can be used with VSCode.
|
|
|
|
It works on Linux, Windows (WSL2) and OSX.
|
|
|
|
## Requirements
|
|
|
|
- [VS code](https://code.visualstudio.com/download) 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
|
|
|
|
## Setup
|
|
|
|
1. Create the following files and directory on your host if you don't have them:
|
|
|
|
```sh
|
|
touch ~/.gitconfig ~/.zsh_history
|
|
mkdir -p ~/.ssh
|
|
```
|
|
|
|
1. **For Docker on OSX**: ensure the project directory and your home directory `~` are accessible by Docker.
|
|
1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P).
|
|
1. Select `Dev Containers: Open Folder in Container...` and choose the project directory.
|
|
|
|
## Customization
|
|
|
|
For any customization to take effect, you should "rebuild and reopen":
|
|
|
|
1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P)
|
|
2. Select `Dev Containers: Rebuild Container`
|
|
|
|
Changes you can make are notably:
|
|
|
|
- Changes to the Docker image in [Dockerfile](Dockerfile)
|
|
- Changes to VSCode **settings** and **extensions** in [devcontainer.json](devcontainer.json).
|
|
- Change the entrypoint script by adding a bind mount in [devcontainer.json](devcontainer.json) of 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:
|
|
|
|
```json
|
|
// Welcome script
|
|
{
|
|
"source": "/yourpath/.welcome.sh",
|
|
"target": "/root/.welcome.sh",
|
|
"type": "bind"
|
|
},
|
|
```
|
|
|
|
- More options are documented in the [devcontainer.json reference](https://containers.dev/implementors/json_reference/).
|