service-captcha/docker-compose-prod.yml

96 lines
2.0 KiB
YAML

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
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
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