Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##
- ## -------------------------
- ## | D E V I L S T A C K |
- ## -------------------------
- ##
- ## Local LAMP/LEMP stack
- ##
- ##
- ## ${VARIABLE:-default} will evaluate to default if VARIABLE is unset or empty in the environment.
- ## ${VARIABLE-default} will evaluate to default only if VARIABLE is unset in the environment.
- ##
- ##
- ## -- DO NOT EDIT THIS FILE --
- ##
- ## Copy 'docker-compose.override.yml-example' to 'docker-compose.override.yml'
- ## and edit this file with your custom changes (override or even new services).
- ##
- ## Edit '.env' for configuration.
- ##
- ## If '.env' does not exist, copy 'env-example' to '.env'
- ## $ cp env-example .env
- ##
- version: '2.1'
- ################################################################################
- # SERVICES
- ################################################################################
- services:
- # ------------------------------------------------------------
- # Bind (DNS Server)
- # ------------------------------------------------------------
- bind:
- image: cytopia/bind:0.15
- hostname: bind
- restart: always
- ports:
- # [local-machine:]local-port:docker-port
- - "${LOCAL_LISTEN_ADDR}${HOST_PORT_BIND:-1053}:53/tcp"
- - "${LOCAL_LISTEN_ADDR}${HOST_PORT_BIND:-1053}:53/udp"
- environment:
- ##
- ## Debug?
- ##
- - DEBUG_ENTRYPOINT=${DEBUG_COMPOSE_ENTRYPOINT}
- ##
- ## Bind wildcard/host settings
- ##
- - WILDCARD_DNS=${TLD_SUFFIX:-loc}=127.0.0.1
- - EXTRA_HOSTS=${EXTRA_HOSTS}
- ##
- ## Forwarding
- ##
- - DNS_FORWARDER=${BIND_DNS_RESOLVER:-8.8.8.8,8.8.4.4}
- ##
- ## Security
- ##
- - DNSSEC_VALIDATE=${BIND_DNSSEC_VALIDATE:-no}
- ##
- ## Time settings
- ##
- - TTL_TIME=${BIND_TTL_TIME}
- - REFRESH_TIME=${BIND_REFRESH_TIME}
- - RETRY_TIME=${BIND_RETRY_TIME}
- - EXPIRY_TIME=${BIND_EXPIRY_TIME}
- - MAX_CACHE_TIME=${BIND_MAX_CACHE_TIME}
- ##
- ## Query log
- ##
- - DOCKER_LOGS=${BIND_LOG_DNS_QUERIES}
- dns:
- - 127.0.0.1
- # MacOS and Windows have this by default, this hack also allows it for Linux
- extra_hosts:
- docker.for.lin.host.internal: 172.16.239.1
- docker.for.lin.localhost: 172.16.239.1
- networks:
- app_net:
- ipv4_address: 172.16.239.100
- # ------------------------------------------------------------
- # PHP
- # ------------------------------------------------------------
- php:
- image: devilbox/php-fpm:${PHP_SERVER}-work-0.65
- hostname: php
- ##
- ## All .env variables
- ##
- ## Source all variables defined in .env
- ## This also makes any custom variable available in each PHP/HHVM container
- ##
- env_file:
- - ./.env
- environment:
- ##
- ## Debug/Logging
- ##
- - DEBUG_ENTRYPOINT=${DEBUG_COMPOSE_ENTRYPOINT}
- - DEBUG_COMPOSE_ENTRYPOINT
- - DOCKER_LOGS
- ##
- ## UserID and GroupID
- ##
- - NEW_UID
- - NEW_GID
- ##
- ## Adjust timezone
- ##
- - TIMEZONE
- ##
- ## Enable/Disable PHP Modules
- ##
- - ENABLE_MODULES=${PHP_MODULES_ENABLE}
- - DISABLE_MODULES=${PHP_MODULES_DISABLE}
- ##
- ## Mail-catching
- ##
- - ENABLE_MAIL=1
- ##
- ## Enable 127.0.0.1 Port-forwarding
- ##
- - FORWARD_PORTS_TO_LOCALHOST=80:httpd:80,443:httpd:443,3306:mysql:3306,5432:pgsql:5432,6379:redis:6379,11211:memcd:11211,27017:mongo:27017
- ##
- ## MySQL Backups
- ##
- - MYSQL_BACKUP_USER=root
- - MYSQL_BACKUP_PASS=${MYSQL_ROOT_PASSWORD}
- - MYSQL_BACKUP_HOST=mysql
- dns:
- - 172.16.239.100
- # MacOS and Windows have this by default, this hack also allows it for Linux
- extra_hosts:
- docker.for.lin.host.internal: 172.16.239.1
- docker.for.lin.localhost: 172.16.239.1
- networks:
- app_net:
- ipv4_address: 172.16.239.10
- volumes:
- # ---- Format: ----
- # HOST-DIRECTORY : DOCKER-DIRECTORY
- # Mount custom intranet
- - ${DEVILBOX_PATH}/.devilbox/www:/var/www/default:ro${MOUNT_OPTIONS}
- # Mount custom mass virtual hosting
- - ${HOST_PATH_HTTPD_DATADIR}:/shared/httpd:rw${MOUNT_OPTIONS}
- # Mount logs
- - ${DEVILBOX_PATH}/log/php-fpm-${PHP_SERVER}:/var/log/php:rw${MOUNT_OPTIONS}
- # Mount Mail directory
- - ${DEVILBOX_PATH}/mail:/var/mail:rw${MOUNT_OPTIONS}
- # Mount DB Backup directory
- - ${DEVILBOX_PATH}/backups:/shared/backups:rw${MOUNT_OPTIONS}
- # Mount devilbox user-defined *.ini files in order
- # to overwrite the default PHP.ini configuration
- - ${DEVILBOX_PATH}/cfg/php-ini-${PHP_SERVER}:/etc/php-custom.d:ro${MOUNT_OPTIONS}
- # Mount devilbox user-defined PHP-FPM *.conf files in order
- # to overwrite the default PHP-FPM configuration
- - ${DEVILBOX_PATH}/cfg/php-fpm-${PHP_SERVER}:/etc/php-fpm-custom.d:ro${MOUNT_OPTIONS}
- # Mount devilbox user-defined *.so files in order
- # to load custom PHP modules
- - ${DEVILBOX_PATH}/mod/php-fpm-${PHP_SERVER}:/usr/lib64/php/custom-modules:ro${MOUNT_OPTIONS}
- # Mount devilbox user-defined PHP-FPM startup *.sh scripts
- - ${DEVILBOX_PATH}/cfg/php-startup-${PHP_SERVER}:/startup.1.d:rw${MOUNT_OPTIONS}
- - ${DEVILBOX_PATH}/autostart:/startup.2.d:rw${MOUNT_OPTIONS}
- # Mount devilbox user-defined bash config
- - ${DEVILBOX_PATH}/bash:/etc/bashrc-devilbox.d:rw${MOUNT_OPTIONS}
- # Certificate Authority public key
- - ${DEVILBOX_PATH}/ca:/ca:rw${MOUNT_OPTIONS}
- depends_on:
- - bind
- # ------------------------------------------------------------
- # Web Server
- # ------------------------------------------------------------
- httpd:
- image: devilbox/${HTTPD_SERVER}:0.25
- hostname: httpd
- environment:
- ##
- ## Debug/Logging
- ##
- - DEBUG_ENTRYPOINT=${DEBUG_COMPOSE_ENTRYPOINT}
- - DEBUG_RUNTIME=${DEBUG_COMPOSE_ENTRYPOINT}
- - DOCKER_LOGS
- ##
- ## Adjust timezone
- ##
- - TIMEZONE
- ##
- ## UserID and GroupID
- ##
- - NEW_UID
- - NEW_GID
- ##
- ## Disable default vhost?
- ##
- - MAIN_VHOST_ENABLE=${DEVILBOX_UI_ENABLE}
- - MAIN_VHOST_STATUS_ENABLE=1
- - MAIN_VHOST_STATUS_ALIAS=/devilbox-httpd-status
- - MAIN_VHOST_SSL_TYPE=both
- - MAIN_VHOST_SSL_GEN=1
- - MAIN_VHOST_SSL_CN=${DEVILBOX_UI_SSL_CN:-localhost}
- ##
- ## Enable Mass Vhosts
- ##
- - MASS_VHOST_ENABLE=1
- - MASS_VHOST_TLD=.${TLD_SUFFIX}
- - MASS_VHOST_DOCROOT=${HTTPD_DOCROOT_DIR}
- - MASS_VHOST_TPL=${HTTPD_TEMPLATE_DIR}
- - MASS_VHOST_SSL_TYPE=both
- - MASS_VHOST_SSL_GEN=1
- ##
- ## PHP-FPM Remote Server
- ##
- - COMPAT=${PHP_SERVER}
- - PHP_FPM_ENABLE=1
- - PHP_FPM_SERVER_ADDR=php
- - PHP_FPM_SERVER_PORT=9000
- - PHP_FPM_TIMEOUT=${HTTPD_TIMEOUT_TO_PHP_FPM:-180}
- ports:
- # ---- Format: ----
- # [HOST-ADDR : ] HOST-PORT : DOCKER-PORT
- - "${LOCAL_LISTEN_ADDR}${HOST_PORT_HTTPD}:80"
- - "${LOCAL_LISTEN_ADDR}${HOST_PORT_HTTPD_SSL}:443"
- networks:
- app_net:
- ipv4_address: 172.16.239.11
- volumes:
- # ---- Format: ----
- # HOST-DIRECTORY : DOCKER-DIRECTORY
- # Mount custom intranet
- - ${DEVILBOX_PATH}/.devilbox/www:/var/www/default:ro${MOUNT_OPTIONS}
- # Mount custom mass virtual hosting
- - ${HOST_PATH_HTTPD_DATADIR}:/shared/httpd:rw${MOUNT_OPTIONS}
- # Mount custom web server config directory
- - ${DEVILBOX_PATH}/cfg/${HTTPD_SERVER}:/etc/httpd-custom.d:rw${MOUNT_OPTIONS}
- # Mount custom vhost-templates
- - ${DEVILBOX_PATH}/cfg/vhost-gen:/etc/vhost-gen.d:rw${MOUNT_OPTIONS}
- # Mount logs
- - ${DEVILBOX_PATH}/log/${HTTPD_SERVER}:/var/log/${HTTPD_SERVER}:rw${MOUNT_OPTIONS}
- # Certificate Authority public key
- - ${DEVILBOX_PATH}/ca:/ca:rw${MOUNT_OPTIONS}
- depends_on:
- - bind
- - php
- # # ------------------------------------------------------------
- # # MySQL Database
- # # ------------------------------------------------------------
- # mysql:
- # image: cytopia/${MYSQL_SERVER}:latest
- # hostname: mysql
- # environment:
- # ##
- # ## Debug?
- # ##
- # - DEBUG_COMPOSE_ENTRYPOINT
- # ##
- # ## Adjust timezone
- # ##
- # - TIMEZONE
- # ##
- # ## Adjust Root password
- # ##
- # - MYSQL_ROOT_PASSWORD
- # ##
- # ## Socket directory Path
- # ##
- # - MYSQL_SOCKET_DIR=/tmp/mysql
- # ##
- # ## Runtime settings
- # ##
- # - MYSQL_GENERAL_LOG=${MYSQL_GENERAL_LOG}
- # ports:
- # # [local-machine:]local-port:docker-port
- # - "${LOCAL_LISTEN_ADDR}${HOST_PORT_MYSQL}:3306"
- # networks:
- # app_net:
- # ipv4_address: 172.16.239.12
- # volumes:
- # # ---- Format: ----
- # # HOST-DIRECTORY : DOCKER-DIRECTORY
- # # Mount logs
- # - ${DEVILBOX_PATH}/log/${MYSQL_SERVER}:/var/log/mysql:rw${MOUNT_OPTIONS}
- # # Mount devilbox default overwrites
- # - ${DEVILBOX_PATH}/.devilbox/etc/${MYSQL_SERVER}:/etc/mysql/conf.d:ro${MOUNT_OPTIONS}
- # # Mount devilbox user-defined cnf files in order
- # # to overwrite the MySQL server configuration
- # - ${DEVILBOX_PATH}/cfg/${MYSQL_SERVER}:/etc/mysql/docker-default.d:ro${MOUNT_OPTIONS}
- # # Mount MySQL Data directory
- # - ${HOST_PATH_MYSQL_DATADIR}/${MYSQL_SERVER}:/var/lib/mysql:rw${MOUNT_OPTIONS}
- # depends_on:
- # - bind
- # - php
- # - httpd
- # # ------------------------------------------------------------
- # # PostgreSQL
- # # ------------------------------------------------------------
- # pgsql:
- # image: postgres:${PGSQL_SERVER}
- # hostname: pgsql
- # environment:
- # - POSTGRES_USER=${PGSQL_ROOT_USER}
- # - POSTGRES_PASSWORD=${PGSQL_ROOT_PASSWORD}
- # - PGDATA=/var/lib/postgresql/data/pgdata
- # ports:
- # # [local-machine:]local-port:docker-port
- # - "${LOCAL_LISTEN_ADDR}${HOST_PORT_PGSQL}:5432"
- # networks:
- # app_net:
- # ipv4_address: 172.16.239.13
- # volumes:
- # # ---- Format: ----
- # # HOST-DIRECTORY : DOCKER-DIRECTORY
- # # Mount logs
- # - ${DEVILBOX_PATH}/log/pgsql-${PGSQL_SERVER}:/var/log/postgresql:rw${MOUNT_OPTIONS}
- # # Mount PostgreSQL Data directory
- # - ${HOST_PATH_PGSQL_DATADIR}/${PGSQL_SERVER}:/var/lib/postgresql/data/pgdata:rw${MOUNT_OPTIONS}
- # depends_on:
- # - bind
- # - php
- # - httpd
- # ------------------------------------------------------------
- # Redis
- # ------------------------------------------------------------
- redis:
- image: redis:${REDIS_SERVER}
- hostname: redis
- # Apply custom arguments to redis startup
- command: redis-server ${REDIS_ARGS:- }
- environment:
- - REDIS_ARGS=${REDIS_ARGS:- }
- ports:
- # [local-machine:]local-port:docker-port
- - "${LOCAL_LISTEN_ADDR}${HOST_PORT_REDIS}:6379"
- networks:
- app_net:
- ipv4_address: 172.16.239.14
- volumes:
- # ---- Format: ----
- # HOST-DIRECTORY : DOCKER-DIRECTORY
- # Mount logs
- - ${DEVILBOX_PATH}/log/redis-${REDIS_SERVER}:/var/log/redis:rw${MOUNT_OPTIONS}
- depends_on:
- - bind
- - php
- - httpd
- # # ------------------------------------------------------------
- # # Memcached
- # # ------------------------------------------------------------
- # memcd:
- # image: memcached:${MEMCD_SERVER}
- # hostname: memcd
- # ports:
- # # [local-machine:]local-port:docker-port
- # - "${LOCAL_LISTEN_ADDR}${HOST_PORT_MEMCD}:11211"
- # networks:
- # app_net:
- # ipv4_address: 172.16.239.15
- # volumes:
- # # ---- Format: ----
- # # HOST-DIRECTORY : DOCKER-DIRECTORY
- # # Mount logs
- # - ${DEVILBOX_PATH}/log/memcd-${MEMCD_SERVER}:/var/log/memcd:rw${MOUNT_OPTIONS}
- # depends_on:
- # - bind
- # - php
- # - httpd
- # # ------------------------------------------------------------
- # # MongoDB
- # # ------------------------------------------------------------
- # mongo:
- # image: mongo:${MONGO_SERVER}
- # hostname: mongo
- # ports:
- # # [local-machine:]local-port:docker-port
- # - "${LOCAL_LISTEN_ADDR}${HOST_PORT_MONGO}:27017"
- # networks:
- # app_net:
- # ipv4_address: 172.16.239.16
- # volumes:
- # # ---- Format: ----
- # # HOST-DIRECTORY : DOCKER-DIRECTORY
- # # Mount MongoDB Data directory
- # - ${HOST_PATH_MONGO_DATADIR}/${MONGO_SERVER}:/data/db:rw${MOUNT_OPTIONS}
- # depends_on:
- # - bind
- # - php
- # - httpd
- ################################################################################
- # NETWORK
- ################################################################################
- networks:
- app_net:
- driver: bridge
- driver_opts:
- com.docker.network.enable_ipv6: "false"
- ipam:
- driver: default
- config:
- - subnet: 172.16.239.0/24
- gateway: 172.16.239.1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement