From be5e54fc2b4e7daaedac4f824767e656c6858e9a Mon Sep 17 00:00:00 2001 From: Hendrik Belitz Date: Wed, 18 Jun 2025 13:04:50 +0200 Subject: [PATCH] Production docker compose should be runnable without building the app container by yourself. --- Dockerfile | 3 +-- docker-compose.prod.yml | 5 +---- package.json | 8 +++++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 465ae94..5a8038a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -# Production Dockerfile for SvelteKit application -# Security: rootless container, minimal base image, non-privileged user +# Dockerfile for appoint-booking application # Build stage FROM node:24-alpine AS builder diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 049e532..d955305 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -40,10 +40,7 @@ services: read_only: true app: - build: - context: . - dockerfile: Dockerfile - target: production + image: appointment-booking:${VERSION:-latest} container_name: appointment-booking-app restart: unless-stopped user: "1001:1001" diff --git a/package.json b/package.json index 54e4834..739d1e1 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,14 @@ "docker:dev:down": "docker compose -f docker-compose.dev.yml down", "docker:dev:logs": "docker compose -f docker-compose.dev.yml logs -f", "docker:dev:clean": "docker compose -f docker-compose.dev.yml down -v --remove-orphans", - "docker:prod:build": "docker compose -f docker-compose.prod.yml build --no-cache", + "docker:build": "docker build -t appointment-booking:latest .", + "docker:build:tag": "docker tag appointment-booking:latest appointment-booking:$npm_package_version", + "docker:push": "docker push appointment-booking:$npm_package_version && docker push appointment-booking:latest", + "docker:build-and-push": "npm run docker:build && npm run docker:build:tag && npm run docker:push", "docker:prod:up": "docker compose -f docker-compose.prod.yml up -d", "docker:prod:down": "docker compose -f docker-compose.prod.yml down", "docker:prod:logs": "docker compose -f docker-compose.prod.yml logs -f", - "docker:prod:clean": "docker compose -f docker-compose.prod.yml down -v --remove-orphans", - "docker:tag-and-push": "npm run docker:prod:build && docker tag appointment-booking-software-app:latest appointment-booking-software:$npm_package_version && docker push ghcr.io/username/appointment-booking-software:$npm_package_version" + "docker:prod:clean": "docker compose -f docker-compose.prod.yml down -v --remove-orphans" }, "engines": { "node": ">=24.0.0"