laravel-starter/docker-compose.prod.yml

65 lines
1.7 KiB
YAML

services:
starter-api:
image: gitea.leonmorival.com/leon-morival/laravel-starter:latest
container_name: starter-starter-api-1
restart: unless-stopped
depends_on:
pgsql:
condition: service_healthy
# ports: <--- Supprimé pour la sécurité, NPM s'en occupe
# - "8002:80"
environment:
APP_ENV: "production"
APP_KEY: "${APP_KEY}"
APP_URL: "${APP_URL}"
SERVER_NAME: ":80"
APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime" # <-- AJOUTÉ pour FrankenPHP
APP_DEBUG: "true"
FILESYSTEM_DISK: "public"
DB_CONNECTION: "pgsql"
DB_HOST: "pgsql"
DB_PORT: 5432
DB_DATABASE: "${DB_DATABASE}"
DB_USERNAME: "${DB_USERNAME}"
DB_PASSWORD: "${DB_PASSWORD}"
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
container_name: starter-pgsql-1
restart: unless-stopped
environment:
POSTGRES_DB: "${DB_DATABASE}"
POSTGRES_USER: "${DB_USERNAME}"
POSTGRES_PASSWORD: "${DB_PASSWORD}"
volumes:
- pgsql-data:/var/lib/postgresql/data
# ports: <--- Tu peux aussi le supprimer si tu n'as pas besoin d'y accéder depuis ton PC (DBeaver/TablePlus)
# - "5428:5432"
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE}" ]
interval: 5s
timeout: 5s
retries: 10
networks:
- internal
volumes:
pgsql-data:
external: true
name: starter_pgsql_data
storage-data:
storage-public-data:
name: starter_storage_public_data
networks:
nginx:
external: true
internal:
driver: bridge