services: backend: build: context: . dockerfile: Dockerfile.dev ports: - 3000 depends_on: db: condition: service_healthy environment: DATABASE_URL: postgres://postgres:postgres@db:5432/postgres RAILS_ENV: development volumes: - .:/rails workers: build: context: . dockerfile: Dockerfile.dev entrypoint: bin/jobs depends_on: db: condition: service_healthy environment: DATABASE_URL: postgres://postgres:postgres@db:5432/postgres RAILS_ENV: development volumes: - .:/rails frontend: build: context: ../wedding-planner-frontend dockerfile: Dockerfile.dev ports: - 3000 depends_on: - backend volumes: - ../wedding-planner-frontend/:/app libre-captcha: image: librecaptcha/lc-core:latest volumes: - "./tmp/libre-captcha-data:/lc-core/data" ports: - 8888 nginx: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - frontend - backend db: image: postgres:17 ports: - 5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres healthcheck: test: ['CMD-SHELL', 'pg_isready -U postgres'] interval: 10s timeout: 5s retries: 5