{"id":14155176,"url":"https://github.com/qdm12/basedevcontainer","last_synced_at":"2026-04-08T21:03:34.622Z","repository":{"id":39738611,"uuid":"236971178","full_name":"qdm12/basedevcontainer","owner":"qdm12","description":"Base development Docker image used by other development Docker images","archived":false,"fork":false,"pushed_at":"2025-08-14T18:44:43.000Z","size":179,"stargazers_count":63,"open_issues_count":5,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-14T20:34:46.474Z","etag":null,"topics":["alpine","debian","devcontainer","docker","docker-image","vscode"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qdm12.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["qdm12"]}},"created_at":"2020-01-29T11:54:26.000Z","updated_at":"2025-08-14T18:44:47.000Z","dependencies_parsed_at":"2024-02-04T12:55:03.238Z","dependency_job_id":"27be9e87-385b-457a-b933-48d5c978ea4b","html_url":"https://github.com/qdm12/basedevcontainer","commit_stats":{"total_commits":259,"total_committers":2,"mean_commits":129.5,"dds":0.04633204633204635,"last_synced_commit":"1ce12e9164d12ef63feb5d1b360eefbe19e37070"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/qdm12/basedevcontainer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fbasedevcontainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fbasedevcontainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fbasedevcontainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fbasedevcontainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qdm12","download_url":"https://codeload.github.com/qdm12/basedevcontainer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fbasedevcontainer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31573789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","debian","devcontainer","docker","docker-image","vscode"],"created_at":"2024-08-17T08:02:22.779Z","updated_at":"2026-04-08T21:03:34.606Z","avatar_url":"https://github.com/qdm12.png","language":"Shell","readme":"# Base Dev Container\n\nBase Alpine development container for Visual Studio Code, used as base image by other images\n\n\u003cimg height=\"300\" src=\"https://raw.githubusercontent.com/qdm12/basedevcontainer/master/title.svg\"\u003e\n\n[![Alpine](https://github.com/qdm12/basedevcontainer/actions/workflows/alpine.yml/badge.svg)](https://github.com/qdm12/basedevcontainer/actions/workflows/alpine.yml)\n[![Debian](https://github.com/qdm12/basedevcontainer/actions/workflows/debian.yml/badge.svg)](https://github.com/qdm12/basedevcontainer/actions/workflows/debian.yml)\n\n[![dockeri.co](https://dockeri.co/image/qmcgaw/basedevcontainer)](https://hub.docker.com/r/qmcgaw/basedevcontainer)\n\n![Last release](https://img.shields.io/github/release/qdm12/basedevcontainer?label=Last%20release)\n![Last Docker tag](https://img.shields.io/docker/v/qmcgaw/basedevcontainer?sort=semver\u0026label=Last%20Docker%20tag)\n[![Last release size](https://img.shields.io/docker/image-size/qmcgaw/basedevcontainer?sort=semver\u0026label=Last%20released%20image)](https://hub.docker.com/r/qmcgaw/basedevcontainer/tags?page=1\u0026ordering=last_updated)\n![GitHub last release date](https://img.shields.io/github/release-date/qdm12/basedevcontainer?label=Last%20release%20date)\n![Commits since release](https://img.shields.io/github/commits-since/qdm12/basedevcontainer/latest?sort=semver)\n\n[![Latest size](https://img.shields.io/docker/image-size/qmcgaw/basedevcontainer/latest?label=Latest%20image)](https://hub.docker.com/r/qmcgaw/basedevcontainer/tags)\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/qdm12/basedevcontainer.svg)](https://github.com/qdm12/basedevcontainer/commits/master)\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/y/qdm12/basedevcontainer.svg)](https://github.com/qdm12/basedevcontainer/graphs/contributors)\n[![GitHub closed PRs](https://img.shields.io/github/issues-pr-closed/qdm12/basedevcontainer.svg)](https://github.com/qdm12/basedevcontainer/pulls?q=is%3Apr+is%3Aclosed)\n[![GitHub issues](https://img.shields.io/github/issues/qdm12/basedevcontainer.svg)](https://github.com/qdm12/basedevcontainer/issues)\n[![GitHub closed issues](https://img.shields.io/github/issues-closed/qdm12/basedevcontainer.svg)](https://github.com/qdm12/basedevcontainer/issues?q=is%3Aissue+is%3Aclosed)\n\n[![Lines of code](https://img.shields.io/tokei/lines/github/qdm12/basedevcontainer)](https://github.com/qdm12/basedevcontainer)\n![Code size](https://img.shields.io/github/languages/code-size/qdm12/basedevcontainer)\n![GitHub repo size](https://img.shields.io/github/repo-size/qdm12/basedevcontainer)\n\n[![MIT](https://img.shields.io/github/license/qdm12/basedevcontainer)](https://github.com/qdm12/basedevcontainer/master/LICENSE)\n![Visitors count](https://visitor-badge.laobi.icu/badge?page_id=basedevcontainer.readme)\n\n## Features\n\n- `qmcgaw/basedevcontainer:alpine` (or `:latest`) based on Alpine 3.23 in **230MB**\n- `qmcgaw/basedevcontainer:debian` based on Debian Buster Slim in **376MB**\n- All images are compatible with `amd64`, `386`, `arm64`, `armv7`, `armv6` and `ppc64le` CPU architectures\n- Contains the packages:\n  - `libstdc++`: needed by the VS code server\n  - `zsh`: main shell instead of `/bin/sh`\n  - `git`: interact with Git repositories\n  - `openssh-client`: use SSH keys\n  - `nano`: edit files from the terminal\n- Contains the binaries:\n  - [`gh`](https://github.com/cli/cli): interact with Github with the terminal\n  - `docker`\n  - `docker-compose` and `docker compose` docker plugin\n  - [`docker buildx`](https://github.com/docker/buildx) docker plugin\n  - [`bit`](https://github.com/chriswalz/bit)\n  - [`devtainr`](https://github.com/qdm12/devtainr)\n- Custom integrated terminal\n  - Based on zsh and [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)\n  - Uses the [Powerlevel10k](https://github.com/romkatv/powerlevel10k) theme\n  - With [Logo LS](https://github.com/Yash-Handa/logo-ls) as a replacement for `ls`\n    - Shows information on login; easily extensible\n- Cross platform\n  - Easily bind mount your SSH keys to use with **git**\n  - Manage your host Docker from within the dev container on Linux, MacOS and Windows\n- Docker uses buildkit by default, with the latest Docker client binary.\n- Extensible with docker-compose.yml\n- Supports SSH keys with Linux, OSX and Windows\n\n## Requirements\n\n- [Docker](https://www.docker.com/products/docker-desktop) installed and running\n  - If you use OSX, share the directory `~/.ssh` and the directory of your project with Docker Desktop\n- [Docker Compose](https://docs.docker.com/compose/install/) installed\n- [VS code](https://code.visualstudio.com/download) installed\n- [VS code dev containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) installed\n\n## Setup for a project\n\n1. Download this repository and put the `.devcontainer` directory in your project.\n   Alternatively, use this shell script from your project path\n\n    ```sh\n    # we assume you are in /yourpath/myproject\n    mkdir .devcontainer\n    cd .devcontainer\n    wget -q https://raw.githubusercontent.com/qdm12/basedevcontainer/master/.devcontainer/devcontainer.json\n    wget -q https://raw.githubusercontent.com/qdm12/basedevcontainer/master/.devcontainer/docker-compose.yml\n    ```\n\n1. 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*.\n1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P) and select `Dev Containers: Open Folder in Container...` and choose your project directory\n\n## More\n\n### devcontainer.json\n\n- You can change the `\"postCreateCommand\"` to be relevant to your situation. In example it could be `echo \"downloading\" \u0026\u0026 npm i` to combine two commands\n- You can change the extensions installed in the Docker image within the `\"extensions\"` array\n- VScode settings can be changed or added in the `\"settings\"` object.\n\n### docker-compose.yml\n\n- Add containers to be launched with your development container. In example, let's add a postgres database.\n    1. Add this block to `.devcontainer/docker-compose.yml`\n\n        ```yml\n          database:\n            image: postgres\n            restart: always\n            environment:\n              POSTGRES_PASSWORD: password\n        ```\n\n    1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P)\n    1. Select `Dev-Containers: Rebuild Container`\n\n### Development image\n\nYou can build and extend the Docker development image to suit your needs.\n\n- You can build the development image yourself:\n\n    ```sh\n    docker build -t qmcgaw/basedevcontainer -f alpine.Dockerfile  https://github.com/qdm12/basedevcontainer.git\n    ```\n\n- You can extend the Docker image `qmcgaw/basedevcontainer` with your own instructions.\n\n    1. Create a file `.devcontainer/Dockerfile` with `FROM qmcgaw/basedevcontainer`\n    1. Append instructions to the Dockerfile created. For example:\n        - Add more Go packages and add an alias\n\n            ```Dockerfile\n            FROM qmcgaw/basedevcontainer\n            COPY . .\n            RUN echo \"alias ls='ls -al'\" \u003e\u003e ~/.zshrc\n            ```\n\n        - Add some Alpine packages:\n\n            ```Dockerfile\n            FROM qmcgaw/basedevcontainer\n            RUN apk add bind-tools\n            ```\n\n    1. Modify `.devcontainer/docker-compose.yml` and add `build: .` in the vscode service.\n    1. Open the command palette in Visual Studio Code (CTRL+SHIFT+P)\n    1. Select `Dev-Containers: Rebuild Container`\n\n- You can bind mount a file at `/root/.welcome.sh` to modify the welcome message.\n\n## TODO\n\n- [ ] `bit complete` yes flag\n- [ ] Firewall, see [this](https://code.visualstudio.com/docs/remote/containers#_what-are-the-connectivity-requirements-for-the-vs-code-server-when-it-is-running-in-a-container)\n- [ ] Extend another docker-compose.yml\n- [ ] Fonts for host OS for the VS code shell\n- [ ] Gifs and images\n- [ ] Install VS code server and extensions in image, waiting for [this issue](https://github.com/microsoft/vscode-remote-release/issues/1718)\n","funding_links":["https://github.com/sponsors/qdm12"],"categories":["vscode"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqdm12%2Fbasedevcontainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqdm12%2Fbasedevcontainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqdm12%2Fbasedevcontainer/lists"}