Ultimate JS development container for Visual Studio Code
- Based on kbuley/basedevcontainer
- Minimal custom terminal and packages
- Nodejs, npm and yarn downloaded as Alpine packages
- See more features
- Globally installed:
nodemon
,create-react-app
,mocha
, andjest
- Cross platform
- Easily bind mount your SSH keys to use with git
- Extensible with docker-compose.yml
- Two versions:
- Alpine 3.19 based
- Image tags
:latest
,:alpine
and:alpine-vx.x.x
- Size of 925MB
⚠️ does not work onarm64
due to vscode-remote-release#4462
- Image tags
- Debian Bookworm Slim based
- Image tags
:debian
and:debian-vx.x.x
- Size of 708MB
- Image tags
- Ubuntu LTS based
- Image tags
:ubuntu
and:ubuntu-vx.x.x
- Size of 609MB
- Image tags
- Alpine 3.19 based
- Docker installed and running
- If you don't use Linux, share the directories
~/.ssh
and the directory of your project with Docker Desktop
- If you don't use Linux, share the directories
- Docker Compose installed
- VS code installed
- VS code remote containers extension installed
-
Setup your configuration files
-
With style 💯
docker run -it --rm -v "/yourrepopath:/repository" kbuley/devtainr:v0.2.0 -dev js -path /repository -name projectname
Or use the built binary
-
Or manually: download this repository and put the .devcontainer directory in your project.
-
-
If you have a .vscode/settings.json, eventually move the settings to .devcontainer/devcontainer.json in the
"settings"
section as .vscode/settings.json take precedence over the settings defined in .devcontainer/devcontainer.json. -
Open the command palette in Visual Studio Code (CTRL+SHIFT+P) and select
Remote-Containers: Open Folder in Container...
and choose your project directory -
If you want to use the Debian based image, you can modify the .devcontainer/Dockerfile in your directory.
Note that by default it will map the port 3000
to a random port on your host, which you can find with docker ps
See the .devcontainer/README.md document in your repository.
- kbuley/basedevcontainer todos
This repository is under an MIT license unless indicated otherwise.