version: '3.8' services: app: build: context: . dockerfile: Dockerfile container_name: wish-list-api ports: - "8080:8080" environment: - MONGODB_URI=mongodb://${MONGO_USER}:${MONGO_PASSWORD}@mongo:27017/${MONGO_DATABASE} env_file: - .env depends_on: - mongo restart: unless-stopped networks: - app-network tests: build: context: . dockerfile: Dockerfile container_name: wish-list-api-tests environment: - MONGODB_URI=mongodb://${MONGO_USER}:${MONGO_PASSWORD}@mongo:27017/${MONGO_DATABASE} - RUN_INTEGRATION_TESTS=true env_file: - .env depends_on: - mongo volumes: - ./coverage:/app/coverage command: sh -c "chmod +x /app/scripts/run_tests.sh && /app/scripts/run_tests.sh" networks: - app-network mongo: image: mongo:latest container_name: mongodb restart: unless-stopped environment: - MONGO_INITDB_ROOT_USERNAME=${MONGO_USER} - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} - MONGO_INITDB_DATABASE=${MONGO_DATABASE} env_file: - .env ports: - "27017:27017" volumes: - mongo_data:/data/db networks: - app-network networks: app-network: driver: bridge volumes: mongo_data: driver: local