version: '3.7' services: nginx: build: context: ./nginx dockerfile: Dockerfile # restart: always depends_on: - app - swagger ports: - ${DOCKER_NGINX_PORT}:80 app: build: context: app dockerfile: docker/Dockerfile target: PRODUCTION # restart: always # cap_drop: # - ALL # cap_add: # - SETGID # - SETUID # - CHOWN # - FOWNER depends_on: - db - redis - reverb env_file: app/application/.env environment: CONTAINER_ROLE: app UNIT_SOURCE: '"172.16.0.0/12"' queue: build: context: app dockerfile: docker/Dockerfile target: PRODUCTION # restart: always depends_on: - db - redis environment: CONTAINER_ROLE: queue volumes: - ./app/application:/var/www/html reverb: build: context: app dockerfile: docker/Dockerfile target: PRODUCTION # restart: always depends_on: - db - redis environment: CONTAINER_ROLE: websockets ports: - ${DOCKER_WEBSOCKET_PORT}:9000 volumes: - ./app/application:/var/www/html scheduler: build: context: app dockerfile: docker/Dockerfile target: PRODUCTION # restart: always depends_on: - db - redis environment: CONTAINER_ROLE: scheduler volumes: - ./app/application:/var/www/html swagger: image: swaggerapi/swagger-ui # restart: always depends_on: - app environment: URLS: "[ { url: '/swagger.json', name: '/swagger.json' } ]" BASE_URL: /api-docs redis: image: redis:3.0-alpine # restart: always volumes: - ./redis/data:/data 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