fullstack-devc
A polyglot development container with Python, Go, and TypeScript/JavaScript toolchains pre-installed.
Included toolchains
| Language | Runtime | Package manager | Linter/formatter |
|---|
| Python | 3.13 | uv | ruff, mypy |
| Go | 1.25 | native | golangci-lint |
| TypeScript/JS | Bun | bun | ESLint, Prettier |
Also includes: Git, GitHub CLI (gh), kubectl, jq, vim, nano, Claude Code, claude-switch, OpenAI Codex CLI (codex), GitHub Copilot CLI (copilot).
Google Cloud CLI (gcloud), AWS CLI (aws), and kubectl are available in the -cloud image variant.
PostgreSQL 17 is available as a separate image variant — see Image variants below.
Platform support
The image is built for linux/amd64 and linux/arm64.
| Host | Platform used |
|---|
| Linux (x86_64) | linux/amd64 |
| Linux (ARM64) | linux/arm64 |
| macOS (Apple Silicon) | linux/arm64 via Docker Desktop |
| macOS (Intel) | linux/amd64 via Docker Desktop |
| Windows | linux/amd64 via Docker Desktop / WSL2 |
Usage
As a VS Code dev container
Add a .devcontainer/devcontainer.json to your project:
{
"name": "My Project",
"image": "pilotso11/fullstack-devc:latest",
"remoteUser": "developer",
"mounts": [
"source=${localEnv:HOME}/.claude,target=/home/developer/.claude,type=bind,consistency=cached",
"source=${localEnv:HOME}/.config/gcloud,target=/home/developer/.config/gcloud,type=bind"
],
"postCreateCommand": "bash -c '[ -f requirements.txt ] && uv pip install --system -r requirements.txt; [ -f go.mod ] && go mod download; [ -f package.json ] && bun install; true'",
"forwardPorts": [3000, 5173, 5432, 8000, 8080]
}
The mounts configuration shares your host's ~/.claude directory with the container, persisting Claude Code settings, API keys, and session history across all projects. Alternatively, use a named volume for per-project isolation:
"mounts": [
"source=myproject-claude-settings,target=/home/developer/.claude,type=volume"
]
Dependency auto-installation
On container creation, dependencies are installed automatically based on files present in the workspace:
requirements.txt → uv pip install --system -r requirements.txt
go.mod → go mod download
package.json → bun install
Services
PostgreSQL 17 is available in the -pg image variant. It is not started automatically — start it when needed.
PostgreSQL 17 (requires -pg variant)
Start and stop with:
pg-start # Initialize (first run) and start PostgreSQL
pg-stop # Stop PostgreSQL
Configured via environment variables (set on the container via docker run -e or containerEnv in devcontainer.json):
| Variable | Default | Description |
|---|
DATABASE_USER | postgres | PostgreSQL role name |
DATABASE_PASSWORD | postgres | Role password |
DATABASE_URL | postgresql://postgres:postgres@localhost:5432/postgres | Connection string for your application |
pg-start creates the role and database from these variables on first run. Storage is ephemeral — data is lost when the container is removed.
Forwarded ports
| Port | Service |
|---|
| 3000 | Frontend |
| 5173 | Vite dev server |
| 5432 | PostgreSQL |
| 8000 | Backend API |
| 8080 | General HTTP |
Image variants
Three image variants are published:
| Variant | Tag suffix | PostgreSQL | gcloud / AWS CLI |
|---|
| Base (default) | (none) | ✗ | ✗ |
| Cloud | -cloud | ✗ | ✓ |
| Postgres | -pg | ✓ | ✗ |
Use the base image (pilotso11/fullstack-devc:latest) for most projects — it includes kubectl for managing any cluster. Use the -cloud variant when you additionally need Google Cloud CLI or AWS CLI. Use the -pg variant when you need a bundled PostgreSQL 17 server.
Image tags
| Tag | Source |
|---|
latest | Latest build from main or weekly scheduled rebuild (base, includes kubectl) |
latest-cloud | Latest build from main or weekly scheduled rebuild (with gcloud/AWS CLI) |
latest-pg | Latest build from main or weekly scheduled rebuild (with PostgreSQL 17) |
main | Most recent push to main |
main-cloud | Most recent push to main (with gcloud/AWS CLI) |
main-pg | Most recent push to main (with PostgreSQL 17) |
1.2.3 / 1.2 / 1 | Semver release from a v* git tag |
1.2.3-cloud / 1.2-cloud / 1-cloud | Semver release with gcloud/AWS CLI |
1.2.3-pg / 1.2-pg / 1-pg | Semver release with PostgreSQL 17 |
sha-<hash> | Specific commit |
sha-<hash>-cloud | Specific commit with gcloud/AWS CLI |
sha-<hash>-pg | Specific commit with PostgreSQL 17 |