Base development container for Visual Studio Code, used as base image by other images
5.2K
Base Alpine development container for Visual Studio Code, used as base image by other images
kbuley/basedevcontainer:alpine (or :latest) based on Alpine 3.19 in 873MBkbuley/basedevcontainer:debian based on Debian Bookworm Slim in 581MBkbuley/basedevcontainer:ubuntu based on Ubuntu LTS in 537MBamd64, 386, arm64, armv7, armv6 and ppc64le CPU architectureslibstdc++: needed by the VS code serverzsh: main shell instead of /bin/shgit: interact with Git repositoriesopenssh-client: use SSH keysnano: edit files from the terminalneovim: vim, but even betterls
~/.ssh and the directory of your project with Docker DesktopDownload this repository and put the .devcontainer directory in your project.
Alternatively, use this shell script from your project path
# we assume you are in /yourpath/myproject
mkdir .devcontainer
cd .devcontainer
wget -q https://raw.githubusercontent.com/kbuley/basedevcontainer/master/.devcontainer/devcontainer.json
wget -q https://raw.githubusercontent.com/kbuley/basedevcontainer/master/.devcontainer/docker-compose.yml
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
"postCreateCommand" to be relevant to your situation. In example it could be echo "downloading" && npm i to combine two commands"extensions" array"settings" object.You can publish a port to access it from your host
Add containers to be launched with your development container. In example, let's add a postgres database.
Add this block to .devcontainer/docker-compose.yml
database:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: password
In .devcontainer/devcontainer.json change the line "runServices": ["vscode"], to "runServices": ["vscode", "database"],
In the VS code command palette, rebuild the container
You can build and extend the Docker development image to suit your needs.
You can build the development image yourself:
docker build -t kbuley/basedevcontainer -f alpine.Dockerfile https://github.com/kbuley/basedevcontainer.git
You can extend the Docker image kbuley/basedevcontainer with your own instructions.
Create a file .devcontainer/Dockerfile with FROM kbuley/basedevcontainer
Append instructions to the Dockerfile created. For example:
Add more Go packages and add an alias
FROM kbuley/basedevcontainer
COPY . .
RUN echo "alias ls='ls -al'" >> ~/.zshrc
Add some Alpine packages, you will need to switch to root:
FROM kbuley/basedevcontainer
USER root
RUN apk add bind-tools
USER vscode
Modify .devcontainer/docker-compose.yml and add build: . in the vscode service.
Open the VS code command palette and choose Remote-Containers: Rebuild container
Content type
Image
Digest
sha256:cc09e7cb3…
Size
339.9 MB
Last updated
over 2 years ago
docker pull kbuley/basedevcontainer