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 env_file: - .env environment: - MONGO_URL=mongodb://${MONGO_USER}:${MONGO_PASSWORD}@db:27017/${MONGO_DB} - DOCKER_NETWORK=linux-odyssey-players - SECRET_KEY=${SECRET_KEY} - TRUSTED_PROXIES=${TRUSTED_PROXIES} analytics: image: linuxodyssey/analytics build: context: . dockerfile: packages/analytics/Dockerfile target: prod restart: always depends_on: - db networks: - internal ports: - '3001:3001' environment: - MONGO_URL=mongodb://${MONGO_USER}:${MONGO_PASSWORD}@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_PASSWORD} - MONGO_DB=${MONGO_DB} - 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} base: image: linuxodyssey/quest-base build: context: . dockerfile: ./quests/Dockerfile networks: internal: players: name: linux-odyssey-players internal: true volumes: mongo: