108 lines
3.7 KiB
YAML
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
|