chore(devcontainer): drop requirement for docker-compose and use devcontainer.json settings directly
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
.dockerignore
|
.dockerignore
|
||||||
devcontainer.json
|
devcontainer.json
|
||||||
docker-compose.yml
|
|
||||||
Dockerfile
|
Dockerfile
|
||||||
README.md
|
README.md
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ It works on Linux, Windows (WSL2) and OSX.
|
|||||||
- [VS code](https://code.visualstudio.com/download) installed
|
- [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
|
- [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
|
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@@ -34,14 +33,14 @@ Customizations available are notably:
|
|||||||
|
|
||||||
- Changes to the Docker image in [Dockerfile](Dockerfile)
|
- Changes to the Docker image in [Dockerfile](Dockerfile)
|
||||||
- Changes to VSCode **settings** and **extensions** in [devcontainer.json](devcontainer.json).
|
- Changes to VSCode **settings** and **extensions** in [devcontainer.json](devcontainer.json).
|
||||||
- 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:
|
- Change the entrypoint script by adding in [devcontainer.json](devcontainer.json) 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:
|
||||||
|
|
||||||
```yml
|
```json
|
||||||
volumes:
|
{
|
||||||
# ...
|
"source": "/yourpath/.welcome.sh",
|
||||||
- ./.welcome.sh:/root/.welcome.sh:ro
|
"target": "/root/.welcome.sh",
|
||||||
# ...
|
"type": "bind"
|
||||||
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
- Change the docker container configuration in [docker-compose.yml](docker-compose.yml).
|
|
||||||
- More customizations available are documented in the [devcontainer.json reference](https://containers.dev/implementors/json_reference/).
|
- More customizations available are documented in the [devcontainer.json reference](https://containers.dev/implementors/json_reference/).
|
||||||
|
|||||||
@@ -1,16 +1,50 @@
|
|||||||
{
|
{
|
||||||
"name": "gluetun-dev",
|
"name": "gluetun-dev",
|
||||||
"dockerComposeFile": [
|
// User defined settings
|
||||||
"docker-compose.yml"
|
"containerEnv": {
|
||||||
|
"TZ": ""
|
||||||
|
},
|
||||||
|
// Fixed settings
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "./Dockerfile"
|
||||||
|
},
|
||||||
|
"postCreateCommand": "~/.windows.sh && go mod download",
|
||||||
|
"capAdd": [
|
||||||
|
"NET_ADMIN", // Gluetun specific
|
||||||
|
"SYS_PTRACE" // for dlv Go debugging
|
||||||
],
|
],
|
||||||
"service": "vscode",
|
"securityOpt": [
|
||||||
"runServices": [
|
"seccomp=unconfined" // for dlv Go debugging
|
||||||
"vscode"
|
],
|
||||||
|
"mounts": [
|
||||||
|
// Zsh commands history persistence
|
||||||
|
{
|
||||||
|
"source": "${localEnv:HOME}/.zsh_history",
|
||||||
|
"target": "/root/.zsh_history",
|
||||||
|
"type": "bind"
|
||||||
|
},
|
||||||
|
// Git configuration file
|
||||||
|
{
|
||||||
|
"source": "${localEnv:HOME}/.gitconfig",
|
||||||
|
"target": "/root/.gitconfig",
|
||||||
|
"type": "bind"
|
||||||
|
},
|
||||||
|
// SSH directory for Linux, OSX and WSL
|
||||||
|
// On Linux and OSX, a symlink /mnt/ssh <-> ~/.ssh is
|
||||||
|
// created in the container. On Windows, files are copied
|
||||||
|
// from /mnt/ssh to ~/.ssh to fix permissions.
|
||||||
|
{
|
||||||
|
"source": "${localEnv:HOME}/.ssh",
|
||||||
|
"target": "/mnt/ssh",
|
||||||
|
"type": "bind"
|
||||||
|
},
|
||||||
|
// Docker socket to access the host Docker server
|
||||||
|
{
|
||||||
|
"source": "/var/run/docker.sock",
|
||||||
|
"target": "/var/run/docker.sock",
|
||||||
|
"type": "bind"
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"shutdownAction": "stopCompose",
|
|
||||||
"postCreateCommand": "~/.windows.sh && go mod download && go mod tidy",
|
|
||||||
"workspaceFolder": "/workspace",
|
|
||||||
// "overrideCommand": "",
|
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"extensions": [
|
"extensions": [
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
version: "3.7"
|
|
||||||
|
|
||||||
services:
|
|
||||||
vscode:
|
|
||||||
build: .
|
|
||||||
volumes:
|
|
||||||
- ../:/workspace
|
|
||||||
# Docker socket to access Docker server
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
# SSH directory for Linux, OSX and WSL
|
|
||||||
# On Linux and OSX, a symlink /mnt/ssh <-> ~/.ssh is
|
|
||||||
# created in the container. On Windows, files are copied
|
|
||||||
# from /mnt/ssh to ~/.ssh to fix permissions.
|
|
||||||
- ~/.ssh:/mnt/ssh
|
|
||||||
# Shell history persistence
|
|
||||||
- ~/.zsh_history:/root/.zsh_history
|
|
||||||
# Git config
|
|
||||||
- ~/.gitconfig:/root/.gitconfig
|
|
||||||
environment:
|
|
||||||
- TZ=
|
|
||||||
cap_add:
|
|
||||||
# For debugging with dlv
|
|
||||||
- SYS_PTRACE
|
|
||||||
- NET_ADMIN
|
|
||||||
security_opt:
|
|
||||||
# For debugging with dlv
|
|
||||||
- seccomp:unconfined
|
|
||||||
entrypoint: [ "zsh", "-c", "while sleep 1000; do :; done" ]
|
|
||||||
Reference in New Issue
Block a user