Portainer's "Pull and redeploy" runs `compose pull` before `compose up`. With `image: kaiser-natron:portainer` set, that tries to pull the image from Docker Hub and fails with "pull access denied" because the image only exists as a local build artifact. `pull_policy: build` tells compose to skip the pull step for this service. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
30 lines
987 B
YAML
30 lines
987 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
|
|
# Only build locally — never try to pull from a registry. Portainer's
|
|
# "Pull and redeploy" runs `compose pull` first, which would otherwise
|
|
# try to resolve `kaiser-natron:portainer` against Docker Hub and fail.
|
|
pull_policy: build
|
|
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
|