Skip to content

feat(docker): migrate to Debian stable, add deployer CLI to builder stage#43

Open
t0kubetsu wants to merge 2 commits into
devfrom
feat/issue-42-docker-debian-stable
Open

feat(docker): migrate to Debian stable, add deployer CLI to builder stage#43
t0kubetsu wants to merge 2 commits into
devfrom
feat/issue-42-docker-debian-stable

Conversation

@t0kubetsu
Copy link
Copy Markdown

@t0kubetsu t0kubetsu commented May 11, 2026

Summary

Closes #42

  • Base image changed from Alpine to Debian stable (bookworm) — `node:24-bookworm-slim` for the builder, `nginx:stable-bookworm` for the runtime. Debian stable was chosen over Ubuntu LTS: it avoids Ubuntu-specific packaging quirks, has an equally long support lifecycle, and is the reference platform used in our existing Debian VM test environment.
  • Node.js upgraded to 24 (latest stable) — compatible with the `>=22.12.0` engines constraint already defined in `package.json`.
  • range42-deployer CLI installed in builder stage via a Python venv (`/opt/deployer-env`) — PEP 668 compliant (Debian bookworm, like Ubuntu 23.04+, blocks system-level `pip install`; a venv is the correct solution on both distros).
  • Optional `DEPLOYER_CLI_VERSION` build arg for pinning the CLI to a specific release.
  • `docker-compose.yml` now includes an explicit `healthcheck` block (mirrors the `HEALTHCHECK` instruction in the Dockerfile).
  • `README.md` gains a Docker: Build & Push section with tag, push, and build-arg examples.

Test plan

  • `docker compose up --build` succeeds and `docker compose ps` reports `healthy`
  • `curl http://localhost:3000/health\` returns `ok`
  • SPA loads at `http://localhost:3000\`
  • `docker build --build-arg DEPLOYER_CLI_VERSION=1.2.3 .` completes without error (once a release exists)
  • `docker run --rm range42-deployer --version` confirms the CLI is on `PATH`

t0kubetsu added 2 commits May 11, 2026 12:52
…r stage

Addresses #42. Replaces Alpine-based images with node:22-bookworm-slim
(builder) and nginx:stable-bookworm (runtime) to use a predictable,
Debian stable base without Ubuntu-specific constraints.

Installs range42-deployer CLI into an isolated Python venv in the builder
stage (PEP 668-compliant — Debian bookworm blocks system-level pip installs).
Adds DEPLOYER_CLI_VERSION build arg for optional version pinning.

Also adds healthcheck to docker-compose.yml and a Docker build/push
section to README.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant