beachPartyBalloons/docker-compose.yml

78 lines
2.8 KiB
YAML

services:
# ── Main website ─────────────────────────────────────────────────────────────
main-site:
build: ./main-site
container_name: bpb-main
ports:
- "3052:3050"
environment:
NODE_ENV: production
ADMIN_PASSWORD: ${MAIN_ADMIN_PASSWORD}
volumes:
- ./main-site/update.json:/usr/src/app/update.json
restart: always
depends_on:
- gallery-backend
# ── Photo gallery backend ─────────────────────────────────────────────────────
gallery-backend:
build: ./main-site/photo-gallery-app/backend
container_name: bpb-gallery
ports:
- "5001:5000"
environment:
MONGO_URI: mongodb://mongodb:27017/photogallery
WATERMARK_URL: http://watermarker:8000/watermark
volumes:
- ./main-site/photo-gallery-app/backend/uploads:/usr/src/app/uploads
depends_on:
- mongodb
- watermarker
restart: always
# ── Watermarker ───────────────────────────────────────────────────────────────
watermarker:
build: ./main-site/photo-gallery-app/watermarker
container_name: bpb-watermarker
ports:
- "8000:8000"
restart: always
# ── MongoDB ───────────────────────────────────────────────────────────────────
mongodb:
image: mongo:latest
container_name: bpb-mongodb
ports:
- "27017:27017"
volumes:
- ./mongodb_data:/data/db
restart: always
# ── eStore (Next.js / Square) ─────────────────────────────────────────────────
estore:
build: ./estore
container_name: bpb-estore
ports:
- "3000:3000"
env_file: ./estore/.env
restart: unless-stopped
depends_on:
- osrm
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/catalog"]
interval: 30s
timeout: 10s
retries: 3
# ── OSRM (routing engine) ─────────────────────────────────────────────────────
osrm:
image: osrm/osrm-backend
container_name: bpb-osrm
ports:
- "5002:5000"
volumes:
- ./osrm/data:/data
command: osrm-routed --algorithm mld /data/connecticut-latest.osrm
restart: unless-stopped