chore(infrastructure): force image re-pull on redeploy for Portainer

pull_policy: always on the four studioflow services (migrate, api,
worker, frontend) so redeploying the stack in Portainer actually fetches
the latest pushed image instead of reusing a stale local layer for the
mutable `latest`/IMAGE_TAG reference. Third-party pinned images
(postgres, redis) are left on default pull behavior.
This commit is contained in:
2026-08-11 15:18:04 +02:00
parent d6ff99e8a4
commit b122ab4ac0
+4
View File
@@ -3,6 +3,7 @@ services:
# Runs database migrations once before the API and worker start. # Runs database migrations once before the API and worker start.
migrate: migrate:
image: git.devils.zone/devil/youtube-studio-flow-backend:${IMAGE_TAG:-latest} image: git.devils.zone/devil/youtube-studio-flow-backend:${IMAGE_TAG:-latest}
pull_policy: always
command: npx prisma migrate deploy command: npx prisma migrate deploy
restart: "no" restart: "no"
environment: environment:
@@ -15,6 +16,7 @@ services:
api: api:
image: git.devils.zone/devil/youtube-studio-flow-backend:${IMAGE_TAG:-latest} image: git.devils.zone/devil/youtube-studio-flow-backend:${IMAGE_TAG:-latest}
pull_policy: always
restart: unless-stopped restart: unless-stopped
environment: environment:
NODE_ENV: production NODE_ENV: production
@@ -54,6 +56,7 @@ services:
worker: worker:
image: git.devils.zone/devil/youtube-studio-flow-backend:${IMAGE_TAG:-latest} image: git.devils.zone/devil/youtube-studio-flow-backend:${IMAGE_TAG:-latest}
pull_policy: always
restart: unless-stopped restart: unless-stopped
command: node dist/worker.js command: node dist/worker.js
environment: environment:
@@ -82,6 +85,7 @@ services:
# Dockerfile default, /api/v1) — the relative path works because Traefik serves both # Dockerfile default, /api/v1) — the relative path works because Traefik serves both
# frontend and API on the same domain. # frontend and API on the same domain.
image: git.devils.zone/devil/youtube-studio-flow-frontend:${IMAGE_TAG:-latest} image: git.devils.zone/devil/youtube-studio-flow-frontend:${IMAGE_TAG:-latest}
pull_policy: always
restart: unless-stopped restart: unless-stopped
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"