version: '3.7' services: nginx: build: context: ./nginx dockerfile: Dockerfile # restart: always depends_on: - app - swagger ports: - ${DOCKER_NGINX_PORT}:80 app: image: korelf/service-captcha:0.8.1 # restart: always depends_on: - db - redis - reverb env_file: app/.env environment: CONTAINER_ROLE: app UNIT_SOURCE: '["172.16.0.0/12"]' queue: image: korelf/service-captcha:0.8.1 # restart: always depends_on: - db - redis environment: CONTAINER_ROLE: queue env_file: app/.env reverb: image: korelf/service-captcha:0.8.1 # restart: always depends_on: - db - redis environment: CONTAINER_ROLE: websockets env_file: app/.env ports: - ${DOCKER_WEBSOCKET_PORT}:9000 scheduler: image: korelf/service-captcha:0.8.1 # restart: always depends_on: - db - redis environment: CONTAINER_ROLE: scheduler env_file: app/.env redis: image: redis:3.0-alpine # restart: always volumes: - ./redis/data:/data swagger: image: swaggerapi/swagger-ui depends_on: - app environment: URLS: "[ { url: '/swagger.json', name: '/swagger.json' } ]" BASE_URL: /api-docs db: image: docker.io/mysql:8.0.33 command: --default-authentication-plugin=mysql_native_password #restart: always ports: - ${DOCKER_DB_PORT}:3306 environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${DB_DATABASE} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_PASSWORD} volumes: - ./db/data:/var/lib/mysql