services: php: build: context: docker/${CFG_PHP:-php} dockerfile: Dockerfile args: PHP_VERSION: ${PHP_VERSION:-8.4} init: true container_name: emailer-php cpus: ${PHP_CPUS:-1} mem_limit: ${PHP_MEMORY:-512m} working_dir: /app volumes: - ./:/app environment: - ENV=${ENV} - DEBUG_MODE=${DEBUG_MODE} - APPLICATION_HOST=${APPLICATION_HOST} - EMAILER_API=${EMAILER_API} - MARIADB_HOST=emailer-mariadb - MARIADB_PORT=3306 - MARIADB_DATABASE=${MARIADB_DATABASE:-emailer} - MARIADB_USER=${MARIADB_USER:-emailer} - MARIADB_PASSWORD=${MARIADB_PASSWORD} - REDIS_HOST=emailer-redis - REDIS_PORT=6379 ports: - "${PORT_PHP:-10002}:9000" restart: "no" networks: - default mariadb: image: mariadb:10.5 container_name: emailer-mariadb cpus: ${DB_CPUS:-1} mem_limit: ${DB_MEMORY:-1g} working_dir: /backup init: true volumes: - mydb:/var/lib/mysql - ./docker/backup_db:/backup - ./docker/${CFG_DB:-mariadb}/mariadb.cnf:/etc/mysql/conf.d/mariadb.cnf #- ./docker/${CFG_DB:-mariadb}/50-mysqld_safe.cnf:/etc/mysql/mariadb.conf.d/50-mysqld_safe.cnf environment: MARIADB_DATABASE: ${MARIADB_DATABASE:-emailer} MARIADB_USER: ${MARIADB_USER:-emailer} MARIADB_PASSWORD: ${MARIADB_PASSWORD} MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} ports: - "${PORT_DB:-10003}:3306" restart: "no" networks: - default nginx: image: nginx:latest container_name: emailer-nginx cpus: ${NGINX_CPUS:-0.5} mem_limit: ${NGINX_MEMORY:-128m} working_dir: /app init: true volumes: - ./public:/app - ./docker/${CFG_NGINX:-nginx}/default.conf:/etc/nginx/conf.d/default.conf - ./docker/${CFG_NGINX:-nginx}/static_params:/etc/nginx/static_params - ./docker/${CFG_NGINX:-nginx}/fpm_params:/etc/nginx/fpm_params - ./docker/${CFG_NGINX:-nginx}/ssl:/etc/nginx/ssl environment: - ENV=${ENV} - APPLICATION_HOST=${APPLICATION_HOST} ports: - "${PORT_HTTP:-82}:80" - "${PORT_HTTPS:-83}:443" restart: "no" networks: - default depends_on: - php redis: image: redis:alpine container_name: emailer-redis cpus: ${REDIS_CPUS:-0.5} mem_limit: ${REDIS_MEMORY:-256m} restart: "on-failure" init: true networks: - default # swagger-ui: # image: swaggerapi/swagger-ui # container_name: "swagger-ui" # ports: # - "8082:8080" # volumes: # - ./swagger/openapi.json:/openapi.json # environment: # SWAGGER_JSON: /openapi.json # # API_URL: "" volumes: mydb: name: emailer-mydb networks: default: name: default-network