version: '3.8' services: backend: build: context: ./backend dockerfile: Dockerfile ports: - "8080:8080" environment: - DB_HOST=db - DB_PORT=5432 - DB_USER=${DB_USER:-postgres} - DB_PASSWORD=${DB_PASSWORD:-postgres} - DB_NAME=${DB_NAME:-gohorsejobs} - JWT_SECRET=${JWT_SECRET:-secret} - FRONTEND_URL=${FRONTEND_URL:-http://localhost:3000} depends_on: - db restart: unless-stopped networks: - app-network backoffice: build: context: ./backoffice dockerfile: Dockerfile ports: - "3001:3001" environment: - DB_HOST=db - DB_PORT=5432 - DB_USERNAME=${DB_USER:-postgres} - DB_PASSWORD=${DB_PASSWORD:-postgres} - DB_DATABASE=${DB_NAME:-gohorsejobs} - JWT_SECRET=${JWT_SECRET:-secret} depends_on: - db restart: unless-stopped networks: - app-network frontend: build: context: ./frontend dockerfile: Dockerfile args: - NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-http://localhost:8080} ports: - "3000:3000" depends_on: - backend restart: unless-stopped networks: - app-network db: image: postgres:15-alpine environment: - POSTGRES_USER=${DB_USER:-postgres} - POSTGRES_PASSWORD=${DB_PASSWORD:-postgres} - POSTGRES_DB=${DB_NAME:-gohorsejobs} volumes: - postgres_data:/var/lib/postgresql/data networks: - app-network volumes: postgres_data: networks: app-network: driver: bridge