Files
looking-monorepo/docker-compose.yml

108 lines
3.7 KiB
YAML

version: "3.8"
services:
looking-frontend:
image: git.mifi.dev:12023/mifi/pfosi-looking-frontend:latest
container_name: looking-frontend
restart: unless-stopped
environment:
- NODE_ENV=production
networks:
- marina-net
labels:
- "traefik.enable=true"
- "traefik.http.routers.looking-frontend.rule=Host(`pfosi.mifi.dev`)"
- "traefik.http.routers.looking-frontend.tls=true"
- "traefik.http.routers.looking-frontend.tls.certresolver=letsencrypt"
- "traefik.http.services.looking-frontend.loadbalancer.server.port=80"
- "traefik.docker.network=marina-net"
looking-backend:
image: git.mifi.dev:12023/mifi/pfosi-looking-backend:latest
container_name: looking-backend
restart: unless-stopped
environment:
- NODE_ENV=production
- PORT=3069
- MONGODB_URI=mongodb://mongo:27017/urge
- JWT_SECRET=${JWT_SECRET}
- GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY}
- MAIL_HOST=${MAIL_HOST}
- MAIL_PORT=${MAIL_PORT:-587}
- MAIL_USER=${MAIL_USER}
- MAIL_PASS=${MAIL_PASS}
networks:
- backend-net
- marina-net
depends_on:
mongo:
condition: service_healthy
volumes:
- api_images:/app/src/images
labels:
- "traefik.enable=true"
- "traefik.http.routers.looking-backend.rule=Host(`api.pfosi.mifi.dev`)"
- "traefik.http.routers.looking-backend.tls=true"
- "traefik.http.routers.looking-backend.tls.certresolver=letsencrypt"
- "traefik.http.services.looking-backend.loadbalancer.server.port=3069"
- "traefik.docker.network=marina-net"
- "traefik.http.routers.looking-backend.middlewares=api-cors"
- "traefik.http.middlewares.api-cors.headers.accesscontrolallowmethods=GET,OPTIONS,PUT,POST,DELETE,PATCH"
- "traefik.http.middlewares.api-cors.headers.accesscontrolalloworiginlist=https://pfosi.mifi.dev"
- "traefik.http.middlewares.api-cors.headers.accesscontrolallowcredentials=true"
- "traefik.http.middlewares.api-cors.headers.accesscontrolallowheaders=Origin,X-Requested-With,Content-Type,Accept,Authorization,Cache-Control"
mongo:
image: mongo:4.4
container_name: looking-mongo
restart: unless-stopped
environment:
- MONGO_INITDB_DATABASE=urge
- MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USER:-admin}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD:-password}
networks:
- backend-net
volumes:
- mongo_data:/data/db
- ./backend/data:/docker-entrypoint-initdb.d:ro
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/urge --quiet
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
mongo-express:
image: mongo-express:latest
container_name: looking-mongo-express
restart: unless-stopped
environment:
- ME_CONFIG_MONGODB_SERVER=mongo
- ME_CONFIG_MONGODB_PORT=27017
- ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_ROOT_USER:-admin}
- ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_ROOT_PASSWORD:-password}
- ME_CONFIG_BASICAUTH_USERNAME=${MONGO_EXPRESS_USER:-admin}
- ME_CONFIG_BASICAUTH_PASSWORD=${MONGO_EXPRESS_PASSWORD:-password}
networks:
- backend-net
- marina-net
depends_on:
- mongo
labels:
- "traefik.enable=true"
- "traefik.http.routers.mongo-express.rule=Host(`mongo.pfosi.mifi.dev`)"
- "traefik.http.routers.mongo-express.tls=true"
- "traefik.http.routers.mongo-express.tls.certresolver=letsencrypt"
- "traefik.http.services.mongo-express.loadbalancer.server.port=8081"
- "traefik.docker.network=marina-net"
volumes:
mongo_data:
api_images:
networks:
backend-net:
driver: bridge
marina-net:
external: true