feat: blue and green

This commit is contained in:
2026-05-19 12:03:08 +02:00
parent 5ff1fdae4f
commit 2630272995
4 changed files with 129 additions and 47 deletions
+97 -41
View File
@@ -1,45 +1,101 @@
services:
bemeal-api:
image: gitea.leonmorival.com/daily_meal/bemeal-api:latest
container_name: bemeal-api
restart: unless-stopped
depends_on:
pgsql:
condition: service_healthy
redis:
condition: service_started
meilisearch:
condition: service_started
# ports: <--- Supprimé pour la sécurité, NPM s'en occupe
# - "8002:80"
environment:
APP_LOCALE: "fr"
APP_ENV: "production"
APP_KEY: "${APP_KEY}"
APP_URL: "${APP_URL}"
SERVER_NAME: ":80"
APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime" # <-- AJOUTÉ pour FrankenPHP
APP_DEBUG: "${APP_DEBUG}"
FILESYSTEM_DISK: "public"
DB_CONNECTION: "pgsql"
DB_HOST: "pgsql"
DB_PORT: 5432
DB_DATABASE: "${DB_DATABASE:?DB_DATABASE is required}"
DB_USERNAME: "${DB_USERNAME:?DB_USERNAME is required}"
DB_PASSWORD: "${DB_PASSWORD:?DB_PASSWORD is required}"
GEMINI_API_KEY: "${GEMINI_API_KEY:?GEMINI_API_KEY is required}"
REDIS_HOST: "redis"
REDIS_CLIENT: "predis"
QUEUE_CONNECTION: "redis"
SCOUT_DRIVER: "meilisearch"
MEILISEARCH_HOST: "http://meilisearch:7700"
MEILISEARCH_KEY: "${MEILISEARCH_KEY}"
volumes:
- storage-data:/var/www/html/storage/app
- storage-public-data:/var/www/html/storage/app/public
networks:
- nginx
- internal
bemeal-api-blue:
image: gitea.leonmorival.com/daily_meal/bemeal-api:latest
container_name: bemeal-api-blue
restart: unless-stopped
depends_on:
pgsql:
condition: service_healthy
redis:
condition: service_started
meilisearch:
condition: service_started
environment:
APP_LOCALE: "fr"
APP_ENV: "production"
APP_KEY: "${APP_KEY}"
APP_URL: "${APP_URL}"
SERVER_NAME: ":80"
APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime"
APP_DEBUG: "${APP_DEBUG}"
FILESYSTEM_DISK: "public"
DB_CONNECTION: "pgsql"
DB_HOST: "pgsql"
DB_PORT: 5432
DB_DATABASE: "${DB_DATABASE:?DB_DATABASE is required}"
DB_USERNAME: "${DB_USERNAME:?DB_USERNAME is required}"
DB_PASSWORD: "${DB_PASSWORD:?DB_PASSWORD is required}"
GEMINI_API_KEY: "${GEMINI_API_KEY:?GEMINI_API_KEY is required}"
REDIS_HOST: "redis"
REDIS_CLIENT: "predis"
QUEUE_CONNECTION: "redis"
SCOUT_DRIVER: "meilisearch"
MEILISEARCH_HOST: "http://meilisearch:7700"
MEILISEARCH_KEY: "${MEILISEARCH_KEY}"
volumes:
- storage-data:/var/www/html/storage/app
- storage-public-data:/var/www/html/storage/app/public
networks:
- nginx
- internal
bemeal-api-green:
image: gitea.leonmorival.com/daily_meal/bemeal-api:latest
container_name: bemeal-api-green
restart: unless-stopped
depends_on:
pgsql:
condition: service_healthy
redis:
condition: service_started
meilisearch:
condition: service_started
environment:
APP_LOCALE: "fr"
APP_ENV: "production"
APP_KEY: "${APP_KEY}"
APP_URL: "${APP_URL}"
SERVER_NAME: ":80"
APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime"
APP_DEBUG: "${APP_DEBUG}"
FILESYSTEM_DISK: "public"
DB_CONNECTION: "pgsql"
DB_HOST: "pgsql"
DB_PORT: 5432
DB_DATABASE: "${DB_DATABASE:?DB_DATABASE is required}"
DB_USERNAME: "${DB_USERNAME:?DB_USERNAME is required}"
DB_PASSWORD: "${DB_PASSWORD:?DB_PASSWORD is required}"
GEMINI_API_KEY: "${GEMINI_API_KEY:?GEMINI_API_KEY is required}"
REDIS_HOST: "redis"
REDIS_CLIENT: "predis"
QUEUE_CONNECTION: "redis"
SCOUT_DRIVER: "meilisearch"
MEILISEARCH_HOST: "http://meilisearch:7700"
MEILISEARCH_KEY: "${MEILISEARCH_KEY}"
volumes:
- storage-data:/var/www/html/storage/app
- storage-public-data:/var/www/html/storage/app/public
networks:
- nginx
- internal
pgsql:
image: postgres:15-alpine