Your IP : 216.73.216.52


Current Path : /proc/thread-self/root/home/deltalab/Magento/docker-magento2/magento2/
Upload File :
Current File : //proc/thread-self/root/home/deltalab/Magento/docker-magento2/magento2/docker-compose.yml

# MAGENTO2
# PHUSION PHP7/APACHE REDIS MYSQL VARNISH PHPMYADMIN ELASTICSEARCH RABBITMQ
#
# https://github.com/gaiterjones/docker-magento2
#
#
version: "3.1"

services:
    manager:
        build: ./manager/magento2
        hostname: manager
        domainname: "${APPDOMAIN}"
        volumes:
            #- "${CONTAINERDATA}/${PROJECT_NAME}/www:/var/www"
            - "${CONTAINERDATA}/${PROJECT_NAME}/data:/home/data"
            - "${MANAGERDEV}:/var/www/dev"
            - /var/run/docker.sock:/var/run/docker.sock
            - ./varnish/varnish.secret:/etc/varnish/secret
        networks:
            - wwwserver
            - database
            #- proxy_server
        environment:
            SCALE_MANAGER_PROJECTNAME: "${PROJECT_NAME}"
            SCALE_CONTAINER_NAME: "${SCALE_CONTAINER_NAME}"
            PROXY_NETWORK_NAME: "${PROXY_NETWORK_NAME}"
            PROXY_TYPE: "${PROXY_TYPE}"
            APPDOMAIN: "${APPDOMAIN}"

    memcached:
        image: memcached:latest
        networks:
            - wwwserver
        depends_on:
            - manager

    php-apache:
        build:
            context: ./ubuntu/
            args:
                 MAGENTO_REPO_USERNAME: "${MAGENTO_REPO_USERNAME}"
                 MAGENTO_REPO_PASSWORD: "${MAGENTO_REPO_PASSWORD}"
                 SMTP: "${SMTP}"
                 APPDOMAIN: "${APPDOMAIN}"
        hostname: magento2
        domainname: "${APPDOMAIN}"
        expose:
            - 80
            - 443
            - 3000
            - 3001
        #ports:
        #   - "3000:3000"
        #   - "3001:3001"
        volumes:
            #- "${CONTAINERDATA}/${PROJECT_NAME}/www:/var/www"
            - "${CONTAINERDATA}/${PROJECT_NAME}/data:/home/data"
            #- "${CONTAINERDATA}/${PROJECT_NAME}/logs:/var/www/logs"
        networks:
            - database
            - wwwserver
        healthcheck:
              test: "curl --fail -sS ${MAGENTO_URL}:80/pub/health_check.php || exit 1"
              interval: 2m
              timeout: 60s
              retries: 5
        depends_on:
            - mysql
        env_file: .env

    rabbitmq:
        hostname: rabbitmq
        domainname: "${APPDOMAIN}"
        image: rabbitmq:management
        networks:
            - wwwserver
            #- proxy_server
        depends_on:
            - php-apache
        volumes:
            - "${CONTAINERDATA}/${PROJECT_NAME}/rabbitmq:/var/lib/rabbitmq/mnesia/"
        environment:
            - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbitmq_management path_prefix "/rabbitmq"
        expose:
            - 15672
            - 5672
            - 5673

    #consumer1:
    #    hostname: devshop_consumer1
    #    build:
    #        context: ./consumer/
    #        args:
    #            SMTP: "${SMTP}"
    #            APPDOMAIN: "${APPDOMAIN}"
    #    volumes:
    #        - "${CONTAINERDATA}/${PROJECT_NAME}/dev1/www/dev/magento2:/var/www/dev/magento2"
    #    networks:
    #        - wwwserver
    #        - database
    #    depends_on:
    #        - mysql
    #        - rabbitmq
    #    restart: always
    #    entrypoint: ["/usr/local/start_consumer.sh"]
    #    environment:
    #      - CONSUMER_WHITELIST=true

    redis_session:
        build: ./redis/session/
        networks:
            - wwwserver
        depends_on:
            - php-apache

    redis_system:
        image: redis:latest
        networks:
            - wwwserver
        depends_on:
            - php-apache
    varnish:
        build: ./varnish/varnish6
        hostname: varnish
        domainname: "${APPDOMAIN}"
        #expose:
        #  - 80
        #  - 6082
        ports:
            - "80:80"
        networks:
           - wwwserver
           #- proxy_server
        depends_on:
           - php-apache
        volumes:
          - "${CONTAINERDATA}/${PROJECT_NAME}/data:/home/data"
          - ./varnish/varnish6.vcl:/etc/varnish/default.vcl
          - ./varnish/varnish.secret:/etc/varnish/secret
        environment:
          - CACHE_SIZE=64M
          - VARNISH_LOGGING_ENABLED=true

    elasticsearch:
        build: ./elasticsearch
        environment:
          - discovery.type=single-node
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        networks:
           - wwwserver
           #- proxy_server
        expose:
            - 9200
        depends_on:
           - php-apache
        volumes:
          #- "${CONTAINERDATA}/${PROJECT_NAME}/elasticsearch/data1:/usr/share/elasticsearch/data"
          - "${CONTAINERDATA}/${PROJECT_NAME}/data:/home/data"

    mysql:
        #image: mysql:5.7
        image: mysql:8.0.21
        hostname: mysql
        domainname: "${APPDOMAIN}"
        volumes:
            - "${CONTAINERDATA}/${PROJECT_NAME}/mysql:/var/lib/mysql"
            - "${CONTAINERDATA}/${PROJECT_NAME}/data:/home/data"
        networks:
            - database
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
            MYSQL_DATABASE: "${MYSQL_DATABASE}"
            MYSQL_USER: "${MYSQL_USER}"
            MYSQL_PASSWORD: "${MYSQL_PASSWORD}"

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        hostname: phpmyadmin
        domainname: "${APPDOMAIN}"
        expose:
            - 80
        networks:
            - database
            #- proxy_server
        depends_on:
            - mysql
        environment:
            PMA_HOST: mysql
            PMA_ABSOLUTE_URI: "${PMA_ABSOLUTE_URI}"

networks:
    database:
    wwwserver:
    #proxy_server:
      #external: true