78 lines
1.9 KiB
YAML
78 lines
1.9 KiB
YAML
services:
|
|
db:
|
|
image: postgres:18-alpine
|
|
environment:
|
|
POSTGRES_DB: go_guess
|
|
POSTGRES_USER: go_guess
|
|
POSTGRES_PASSWORD: go_guess
|
|
networks:
|
|
- go_guess_network
|
|
ports:
|
|
- "${DB_PORT:-5432}:5432"
|
|
volumes:
|
|
- postgres_data3:/var/lib/postgresql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U go_guess -d go_guess"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 20
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:4-management-alpine
|
|
networks:
|
|
- go_guess_network
|
|
ports:
|
|
- "${RABBITMQ_AMQP_PORT:-5672}:5672"
|
|
- "${RABBITMQ_MANAGEMENT_PORT:-15672}:15672"
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
|
|
api:
|
|
build: ./backend
|
|
environment:
|
|
DATABASE_URL: postgres://go_guess:go_guess@db:5432/go_guess?sslmode=disable
|
|
JWT_SECRET: local-development-secret-change-me-12345
|
|
FRONTEND_URL: ${FRONTEND_URL:-https://nmbs.guess.local}
|
|
APP_ENV: ${APP_ENV:-development}
|
|
GO_LOOSE_BASE_URL: ${GO_LOOSE_BASE_URL:-https://%s.auth.dev}
|
|
SSL_CERT_FILE: /certs/local-ca.crt
|
|
RABBITMQ_URL: amqp://guest:guest@rabbitmq:5672/
|
|
expose:
|
|
- "8080"
|
|
networks:
|
|
- go_guess_network
|
|
- local_dev_edge
|
|
volumes:
|
|
- ${LOCAL_DEV_CERTS_DIR:-/home/dnoulet/go/infrasctruture/certs}/local-ca.crt:/certs/local-ca.crt:ro
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
|
|
web:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
VITE_GO_LOOSE_API_KEY: ${VITE_GO_LOOSE_API_KEY:-}
|
|
expose:
|
|
- "80"
|
|
depends_on:
|
|
- api
|
|
networks:
|
|
go_guess_network: {}
|
|
local_dev_edge:
|
|
aliases:
|
|
- go-guess-web
|
|
networks:
|
|
go_guess_network:
|
|
local_dev_edge:
|
|
external: true
|
|
name: local-dev-edge
|
|
volumes:
|
|
postgres_data:
|
|
postgres_data2:
|
|
postgres_data3:
|