Files

66 lines
1.6 KiB
YAML

version: '3.8'
services:
postgres:
image: postgres:16-alpine
container_name: ar_pm_postgres
restart: unless-stopped
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME}
ports:
- "${DB_PORT}:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 10s
timeout: 5s
retries: 5
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: ar_pm_backend
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
NODE_ENV: ${NODE_ENV}
PORT: ${BACKEND_PORT}
DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_NAME}
JWT_SECRET: ${JWT_SECRET}
JWT_REFRESH_SECRET: ${JWT_REFRESH_SECRET}
JWT_ACCESS_EXPIRES: ${JWT_ACCESS_EXPIRES}
JWT_REFRESH_EXPIRES: ${JWT_REFRESH_EXPIRES}
FRONTEND_URL: ${FRONTEND_URL}
ports:
- "${BACKEND_PORT}:${BACKEND_PORT}"
volumes:
- ./backend:/app
- /app/node_modules
command: npm run dev
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: ar_pm_frontend
restart: unless-stopped
depends_on:
- backend
environment:
REACT_APP_API_URL: ${REACT_APP_API_URL}
ports:
- "${FRONTEND_PORT}:3000"
volumes:
- ./frontend:/app
- /app/node_modules
command: npm start
volumes:
postgres_data: