Ctrl K
ComunidadGuías…

docker-compose.yml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot

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