61 lines
1.5 KiB
YAML
61 lines
1.5 KiB
YAML
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: le-juste-poids-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
ports:
|
|
- "5432:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
|
|
api:
|
|
build:
|
|
context: .
|
|
dockerfile: apps/api/Dockerfile
|
|
container_name: le-juste-poids-api
|
|
restart: unless-stopped
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
NODE_ENV: production
|
|
PORT: 3000
|
|
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public
|
|
ADMIN_USERNAME: ${ADMIN_USERNAME}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
|
|
JWT_SECRET: ${JWT_SECRET}
|
|
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN}
|
|
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
|
|
REFRESH_TOKEN_EXPIRES_IN: ${REFRESH_TOKEN_EXPIRES_IN}
|
|
FRONTEND_URL: ${FRONTEND_URL}
|
|
ports:
|
|
- "3001:3000"
|
|
volumes:
|
|
- api_uploads:/app/apps/api/uploads
|
|
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: apps/web/Dockerfile
|
|
container_name: le-juste-poids-web
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- api
|
|
environment:
|
|
NODE_ENV: production
|
|
NEXT_PUBLIC_API_URL: http://localhost:3001
|
|
ports:
|
|
- "${WEB_PORT:-3000}:3000"
|
|
|
|
volumes:
|
|
pgdata:
|
|
api_uploads: |