Files
kaiser-natron/docker-compose.yml
Dorian 80f1c8db08 build: skip container npm, ship prebuilt dist for portainer showcase
The Portainer host keeps failing on `npm ci` inside the build stage
(both Alpine+libc6-compat and Debian slim exited 1 without ever surfacing
the real error to us). For a dev showcase this isn't worth chasing —
the dev machine is the source of truth for the built output anyway.

- Dockerfile: drop the Node build stage. Image is just nginx:1.27.3-alpine
  with /dist copied in. No npm inside the container.
- docker-compose.yml: drop the production hardening (read_only, tmpfs,
  security_opt, resource caps) and the container_name. Dev-only, don't
  inhibit things.
- .gitignore / .dockerignore: stop ignoring dist/ — it's committed now.
- README: document the `npm run build && commit && push` release flow
  and note what to reinstate when this graduates to real production.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 11:52:01 +01:00

26 lines
737 B
YAML

# Portainer stack — Kaiser Natron dev showcase.
#
# Flow:
# 1. Developer runs `npm run build` locally and commits the updated dist/.
# 2. Portainer → Stacks → Pull and redeploy.
# 3. The image is a tiny nginx with the prebuilt dist copied in.
#
# This is deliberately simple for a showcase box — no container-side npm,
# no hardening, no resource ceilings. Tighten when it graduates to prod.
services:
web:
build:
context: .
dockerfile: Dockerfile
image: kaiser-natron:portainer
restart: unless-stopped
ports:
- "5555:80"
healthcheck:
test: ["CMD", "wget", "-q", "-O-", "http://127.0.0.1/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s