version: '3' services: app: image: linuxodyssey/frontend depends_on: - backend restart: always build: context: . dockerfile: app/Dockerfile target: prod networks: internal: ports: - 8080:80 backend: image: linuxodyssey/backend depends_on: - db restart: always build: context: . dockerfile: server/Dockerfile target: prod networks: - internal - players volumes: - /var/run/docker.sock:/var/run/docker.sock - ./logs:/app/logs - ./config:/app/config env_file: - .env - .env.prod environment: - MONGO_URL=mongodb://${MONGO_USER}:${MONGO_PASS}@db:27017/${MONGO_DB} - DOCKER_NETWORK=linux-odyssey-players - SECRET_KEY=${SECRET_KEY} - TRUSTED_PROXIES=${TRUSTED_PROXIES} - BACKEND_URL=http://backend:3000 - BASE_URL=${BASE_URL} - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID} - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET} - SURVEY_URL=${SURVEY_URL} - BUG_REPORT_URL=${BUG_REPORT_URL} analytics: image: linuxodyssey/analytics build: context: . dockerfile: packages/analytics/Dockerfile target: prod restart: always depends_on: - db networks: - internal ports: - '3001:3001' env_file: - .env - .env.prod environment: - MONGO_URL=mongodb://${MONGO_USER}:${MONGO_PASS}@db:27017/${MONGO_DB} - ADMIN_USERNAME=${ADMIN_USERNAME} - ADMIN_PASSWORD=${ADMIN_PASSWORD} db: image: mongo restart: always networks: - internal ports: - '27017:27017' volumes: - mongo:/data/db - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro environment: - BASE_URL=${BASE_URL} - MONGO_INITDB_ROOT_USERNAME=admin - MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD} - MONGO_USER=${MONGO_USER} - MONGO_PASS=${MONGO_PASS} - MONGO_DB=${MONGO_DB} base: image: linuxodyssey/quest-base build: context: . dockerfile: ./quests/Dockerfile networks: internal: players: name: linux-odyssey-players internal: true volumes: mongo: