laradock/docker-compose.yml

752 lines
20 KiB
YAML
Raw Normal View History

version: '2'
services:
2016-11-01 22:03:47 +08:00
### Applications Code Container #############################
2016-11-01 22:05:10 +08:00
applications:
2017-03-17 14:57:54 +08:00
image: tianon/true
### Workspace Utilities Container ###########################
workspace:
2017-03-17 14:57:54 +08:00
build:
context: ./workspace
args:
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
2017-04-21 06:02:54 +08:00
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
2017-03-17 14:57:54 +08:00
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
2017-09-29 20:56:28 +08:00
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
2017-11-06 18:12:02 +08:00
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
2017-03-17 14:57:54 +08:00
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
- INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
2017-08-31 21:41:01 +08:00
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
2017-03-17 14:57:54 +08:00
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
- NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
2017-03-17 14:57:54 +08:00
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
2017-08-19 22:58:40 +08:00
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
2017-05-07 22:54:55 +08:00
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
2017-03-17 14:57:54 +08:00
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
2017-03-17 14:57:54 +08:00
- INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
- INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
- INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
- INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
- INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
- INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
2017-03-17 14:57:54 +08:00
- INSTALL_MC=${WORKSPACE_INSTALL_MC}
- INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
- INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON}
2017-07-08 18:58:05 +08:00
- INSTALL_IMAGE_OPTIMIZERS=${WORKSPACE_INSTALL_IMAGE_OPTIMIZERS}
2017-09-05 07:36:24 +08:00
- INSTALL_IMAGEMAGICK=${WORKSPACE_INSTALL_IMAGEMAGICK}
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
Install Dependencies to Run Dusk Tests **Why we need this change?** Currently we are unable to run Dusk (Browser) tests in workspace container. This change, is to allow us to install all dependencies needed to run Dust test which consists of 1. Linux packages such as xvfb (x-virtual frame buffer to run browser in headless container) and etc. 2. Chrome browser. 3. Chrome driver. To install the Dusk dependencies. 1. Update `WORKSPACE_INSTALL_DUSK_DEPS` to true. 2. Run `docker-compose build workspace`. I've also added couple of aliases to facilitate the preparation of test environment. 1. xvfb = `Xvfb -ac :0 -screen 0 1024x768x16 &` (run x-virtual frame buffer in the background) 2. serve = `php artisan serve --quiet &` (run laravel app in the background) Once those are installed, we will need to update the default chrome driver argument in Laravel 5.5 from `--headless` to `sandbox`. Below are the steps to run Dusk in workspace. 1. `docker-compose run workspace bash` (get into workspace). 2. `laravel new dusk-test` (generate new lavarel app for testing purpose). 3. `cd dusk-test` (change directory to newly generate app folder). 4. `composer install --dev laravel/dusk` (install dusk via composer). 5. `php artisan dusk:install` (generate dusk files). 6. `sed -i '/APP_URL/d' .env` (remove APP_URL entry in .env) 7. `echo 'APP_URL=localhost:8000' >> .env` (add new APP_URL entry in .env) 8. `sed -i--'s/headless/no-sandbox/g' tests/DuskTestCase.php` (replace the default chrome driver argument). 9. `xvfb` (alias to run Xvfb instance in the background). 10. `serve` (alias to run laravel app in the background). 11. `dusk` (alias to run Dusk test).
2017-09-28 17:59:16 +08:00
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
2018-01-09 11:25:57 +08:00
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
2017-03-17 14:57:54 +08:00
- PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
2017-03-17 14:57:54 +08:00
- NODE_VERSION=${WORKSPACE_NODE_VERSION}
2017-03-23 17:32:11 +08:00
- YARN_VERSION=${WORKSPACE_YARN_VERSION}
2017-03-17 14:57:54 +08:00
- TZ=${WORKSPACE_TIMEZONE}
2017-04-21 06:02:54 +08:00
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
dockerfile: "Dockerfile-${PHP_VERSION}"
2017-03-17 14:57:54 +08:00
volumes_from:
- applications
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
2017-03-17 14:57:54 +08:00
ports:
- "${WORKSPACE_SSH_PORT}:22"
2017-03-17 14:57:54 +08:00
tty: true
networks:
- frontend
- backend
### PHP-FPM Container #######################################
php-fpm:
2017-03-17 14:57:54 +08:00
build:
context: ./php-fpm
args:
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
2017-04-21 06:02:54 +08:00
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
2017-03-17 14:57:54 +08:00
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
2018-02-14 02:19:07 +08:00
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
2017-03-17 14:57:54 +08:00
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
2017-03-17 14:57:54 +08:00
- INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
2017-12-27 18:56:26 +08:00
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
2017-03-17 14:57:54 +08:00
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
2017-05-07 22:54:55 +08:00
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
2017-03-17 14:57:54 +08:00
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
2017-03-17 14:57:54 +08:00
- INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
- INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
2017-04-11 22:45:20 +08:00
- INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
2017-05-12 19:23:03 +08:00
- INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
2017-07-08 18:58:05 +08:00
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
2017-09-06 04:36:30 +08:00
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
dockerfile: "Dockerfile-${PHP_VERSION}"
2017-03-17 14:57:54 +08:00
volumes_from:
- applications
2017-04-16 19:33:27 +08:00
volumes:
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
2017-03-17 14:57:54 +08:00
expose:
- "9000"
depends_on:
- workspace
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
networks:
- backend
2017-03-17 08:59:28 +08:00
### PHP Worker Container #####################################
2017-04-12 03:22:57 +08:00
php-worker:
2017-03-18 08:52:45 +08:00
build:
context: ./php-worker
dockerfile: "Dockerfile-${PHP_VERSION}"
args:
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
2017-03-18 08:52:45 +08:00
volumes_from:
- applications
depends_on:
- workspace
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
networks:
- backend
### NGINX Server Container ##################################
nginx:
2017-03-17 14:57:54 +08:00
build:
context: ./nginx
args:
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
2017-03-17 14:57:54 +08:00
volumes_from:
- applications
2017-03-17 14:57:54 +08:00
volumes:
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
2017-03-17 14:57:54 +08:00
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443"
2017-03-17 14:57:54 +08:00
depends_on:
- php-fpm
networks:
- frontend
- backend
2017-04-21 06:02:54 +08:00
### Blackfire Container #################################
blackfire:
image: blackfire/blackfire
environment:
- BLACKFIRE_SERVER_ID=${BLACKFIRE_SERVER_ID}
- BLACKFIRE_SERVER_TOKEN=${BLACKFIRE_SERVER_TOKEN}
depends_on:
- php-fpm
networks:
- backend
2016-11-01 22:03:47 +08:00
### Apache Server Container #################################
2016-07-28 08:35:58 +08:00
apache2:
2017-03-17 14:57:54 +08:00
build:
context: ./apache2
args:
- PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
2017-09-18 21:24:48 +08:00
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
2017-03-17 14:57:54 +08:00
volumes_from:
- applications
volumes:
- ${APACHE_HOST_LOG_PATH}:/var/log/apache2
2017-06-30 18:22:55 +08:00
- ${APACHE_SITES_PATH}:/etc/apache2/sites-available
2017-03-17 14:57:54 +08:00
ports:
- "${APACHE_HOST_HTTP_PORT}:80"
- "${APACHE_HOST_HTTPS_PORT}:443"
depends_on:
- php-fpm
networks:
- frontend
- backend
2016-07-28 08:35:58 +08:00
### HHVM Container ##########################################
hhvm:
2017-03-17 14:57:54 +08:00
build: ./hhvm
volumes_from:
- applications
expose:
- "9000"
depends_on:
- workspace
networks:
- frontend
- backend
### Minio Container #########################################
minio:
2017-03-17 14:57:54 +08:00
build: ./minio
volumes:
- ${DATA_SAVE_PATH}/minio/data:/export
- ${DATA_SAVE_PATH}/minio/config:/root/.minio
2017-03-17 14:57:54 +08:00
ports:
- "${MINIO_PORT}:9000"
environment:
2017-03-18 08:52:45 +08:00
- MINIO_ACCESS_KEY=access
- MINIO_SECRET_KEY=secretkey
networks:
- frontend
- backend
### MySQL Container #########################################
mysql:
2017-03-17 14:57:54 +08:00
build:
context: ./mysql
args:
- MYSQL_VERSION=${MYSQL_VERSION}
2017-04-07 10:25:40 +08:00
environment:
2017-04-07 10:27:15 +08:00
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${WORKSPACE_TIMEZONE}
2017-03-17 14:57:54 +08:00
volumes:
- ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
2017-03-17 14:57:54 +08:00
ports:
- "${MYSQL_PORT}:3306"
networks:
- backend
### Percona Container #########################################
percona:
build:
context: ./percona
environment:
- MYSQL_DATABASE=${PERCONA_DATABASE}
- MYSQL_USER=${PERCONA_USER}
- MYSQL_PASSWORD=${PERCONA_PASSWORD}
- MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
volumes:
- ${DATA_SAVE_PATH}/percona:/var/lib/mysql
- ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports:
- "${PERCONA_PORT}:3306"
networks:
- backend
### MSSQL Container #########################################
2017-03-26 08:20:24 +08:00
mssql:
build:
context: ./mssql
environment:
- MSSQL_DATABASE=${MSSQL_DATABASE}
- SA_PASSWORD=${MSSQL_PASSWORD}
- ACCEPT_EULA=Y
volumes:
- ${DATA_SAVE_PATH}/mssql:/var/opt/mssql
2017-03-26 08:20:24 +08:00
ports:
- "${MSSQL_PORT}:1433"
networks:
- backend
### MariaDB Container #######################################
mariadb:
2017-03-17 14:57:54 +08:00
build: ./mariadb
volumes:
- ${DATA_SAVE_PATH}/mariadb:/var/lib/mysql
- ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
2017-03-17 14:57:54 +08:00
ports:
- "${MARIADB_PORT}:3306"
environment:
- MYSQL_DATABASE=${MARIADB_DATABASE}
- MYSQL_USER=${MARIADB_USER}
- MYSQL_PASSWORD=${MARIADB_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
networks:
- backend
2016-05-07 09:16:06 +08:00
### PostgreSQL Container ####################################
postgres:
2017-03-17 14:57:54 +08:00
build: ./postgres
volumes:
2017-12-31 05:14:02 +08:00
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql
2017-03-17 14:57:54 +08:00
ports:
- "${POSTGRES_PORT}:5432"
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
networks:
- backend
2016-05-07 09:16:06 +08:00
2016-11-08 21:17:23 +08:00
### PostgreSQL PostGis Container ############################
postgres-postgis:
2017-03-17 14:57:54 +08:00
build: ./postgres-postgis
volumes:
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
2017-03-17 14:57:54 +08:00
ports:
- "${POSTGRES_PORT}:5432"
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
networks:
- backend
2016-11-08 21:17:23 +08:00
2016-05-21 01:35:10 +08:00
### Neo4j Container #########################################
neo4j:
2017-03-17 14:57:54 +08:00
build: ./neo4j
ports:
- "7474:7474"
- "1337:1337"
environment:
- NEO4J_AUTH=default:secret
volumes:
- ${DATA_SAVE_PATH}/neo4j:/var/lib/neo4j/data
networks:
- backend
2016-05-21 01:35:10 +08:00
### MongoDB Container #######################################
mongo:
2017-03-17 14:57:54 +08:00
build: ./mongo
ports:
- "${MONGODB_PORT}:27017"
2017-03-17 14:57:54 +08:00
volumes:
- ${DATA_SAVE_PATH}/mongo:/data/db
networks:
- backend
2016-12-26 22:38:50 +08:00
### RethinkDB Container #######################################
rethinkdb:
2017-03-17 14:57:54 +08:00
build: ./rethinkdb
ports:
- "${RETHINKDB_PORT}:8080"
2017-03-17 14:57:54 +08:00
volumes:
- ${DATA_SAVE_PATH}/rethinkdb:/data/rethinkdb_data
networks:
- backend
### Redis Container #########################################
redis:
2017-03-17 14:57:54 +08:00
build: ./redis
volumes:
- ${DATA_SAVE_PATH}/redis:/data
2017-03-17 14:57:54 +08:00
ports:
- "${REDIS_PORT}:6379"
networks:
- backend
2016-05-14 09:20:20 +08:00
2016-11-01 22:03:47 +08:00
### Aerospike c Container ###################################
2016-08-20 19:28:45 +08:00
aerospike:
2017-03-17 14:57:54 +08:00
build: ./aerospike
volumes_from:
- workspace
volumes:
- ${DATA_SAVE_PATH}/aerospike:/opt/aerospike/data
2017-03-17 14:57:54 +08:00
ports:
- "${AEROSPIKE_SERVICE_PORT}:3000"
- "${AEROSPIKE_FABRIC_PORT}:3001"
- "${AEROSPIKE_HEARTBEAT_PORT}:3002"
- "${AEROSPIKE_INFO_PORT}:3003"
networks:
- backend
2016-05-14 09:20:20 +08:00
### Memcached Container #####################################
memcached:
2017-03-17 14:57:54 +08:00
build: ./memcached
volumes:
- ${DATA_SAVE_PATH}/memcached:/var/lib/memcached
2017-03-17 14:57:54 +08:00
ports:
- "${MEMCACHED_HOST_PORT}:11211"
depends_on:
- php-fpm
networks:
- backend
### Beanstalkd Container ####################################
beanstalkd:
2017-03-17 14:57:54 +08:00
build: ./beanstalkd
ports:
- "${BEANSTALKD_HOST_PORT}:11300"
privileged: true
depends_on:
- php-fpm
networks:
- backend
2016-11-01 22:03:47 +08:00
### RabbitMQ Container ######################################
2016-08-28 16:12:55 +08:00
rabbitmq:
2017-03-17 14:57:54 +08:00
build: ./rabbitmq
ports:
- "${RABBITMQ_NODE_HOST_PORT}:5672"
- "${RABBITMQ_MANAGEMENT_HTTP_HOST_PORT}:15672"
- "${RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT}:15671"
privileged: true
environment:
- RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
depends_on:
- php-fpm
networks:
- backend
2016-08-28 16:12:55 +08:00
2016-05-18 12:56:12 +08:00
### Beanstalkd Console Container ############################
beanstalkd-console:
2017-03-17 14:57:54 +08:00
build: ./beanstalkd-console
ports:
- "2080:2080"
depends_on:
- beanstalkd
networks:
- backend
### Caddy Server Container ##################################
caddy:
2017-03-17 14:57:54 +08:00
build: ./caddy
volumes_from:
- applications
volumes:
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
- ${DATA_SAVE_PATH}:/root/.caddy
ports:
- "${CADDY_HOST_HTTP_PORT}:80"
- "${CADDY_HOST_HTTPS_PORT}:443"
2017-03-17 14:57:54 +08:00
depends_on:
- php-fpm
networks:
- frontend
- backend
2016-11-01 22:03:47 +08:00
### phpMyAdmin Container ####################################
phpmyadmin:
2017-03-17 14:57:54 +08:00
build: ./phpmyadmin
environment:
- PMA_ARBITRARY=1
- MYSQL_USER=${PMA_USER}
- MYSQL_PASSWORD=${PMA_PASSWORD}
- MYSQL_ROOT_PASSWORD=${PMA_ROOT_PASSWORD}
ports:
- "${PMA_PORT}:80"
depends_on:
- "${PMA_DB_ENGINE}"
networks:
- frontend
- backend
### Adminer Container ####################################
adminer:
2017-05-25 16:44:51 +08:00
build:
context: ./adminer
args:
- INSTALL_MSSQL=${ADM_INSTALL_MSSQL}
ports:
- "${ADM_PORT}:8080"
depends_on:
- php-fpm
2017-03-31 17:42:30 +08:00
networks:
- frontend
2017-04-17 13:40:30 +08:00
- backend
2016-11-01 22:03:47 +08:00
### pgAdmin Container #######################################
pgadmin:
2017-03-17 14:57:54 +08:00
build: ./pgadmin
ports:
- "5050:5050"
volumes:
- ${DATA_SAVE_PATH}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
2017-03-17 14:57:54 +08:00
depends_on:
- postgres
networks:
- frontend
- backend
2017-08-22 17:12:56 +08:00
2016-11-01 22:03:47 +08:00
### ElasticSearch Container #################################
elasticsearch:
2017-03-17 14:57:54 +08:00
build: ./elasticsearch
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
- elasticsearch-plugins:/usr/share/elasticsearch/plugins
environment:
- cluster.name=laradock-cluster
- bootstrap.memory_lock=true
2017-12-29 00:54:45 +08:00
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
2017-12-29 00:54:45 +08:00
mem_limit: 1024m
2017-03-17 14:57:54 +08:00
ports:
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
depends_on:
- php-fpm
networks:
- frontend
- backend
2017-03-17 14:57:54 +08:00
### Kibana Container #######################################
kibana:
build: ./kibana
ports:
- "${KIBANA_HTTP_PORT}:5601"
depends_on:
- elasticsearch
networks:
- frontend
- backend
2017-03-17 14:57:54 +08:00
### Certbot Container ##################################
certbot:
build:
context: ./certbot
volumes:
- ./data/certbot/certs/:/var/certs
- ./certbot/letsencrypt/:/var/www/letsencrypt
environment:
- CN="fake.domain.com"
- EMAIL="fake.email@gmail.com"
networks:
- frontend
2017-03-17 14:57:54 +08:00
### Mailhog Container #########################################
mailhog:
build: ./mailhog
ports:
- "1025:1025"
- "8025:8025"
networks:
- frontend
- backend
2017-03-17 14:57:54 +08:00
2017-10-15 02:01:16 +08:00
### MailDev Container #######################################
maildev:
build: ./maildev
ports:
- "${MAILDEV_HTTP_PORT}:80"
- "${MAILDEV_SMTP_PORT}:25"
networks:
- frontend
- backend
### Selenium Container ########################################
selenium:
2017-03-17 14:57:54 +08:00
build: ./selenium
ports:
- "${SELENIUM_PORT}:4444"
volumes:
- /dev/shm:/dev/shm
networks:
- frontend
### Varnish Proxy 1 ##########################################
proxy:
build: ./varnish
expose:
- ${VARNISH_PORT}
environment:
- VARNISH_CONFIG=${VARNISH_CONFIG}
- CACHE_SIZE=${VARNISH_PROXY1_CACHE_SIZE}
- VARNISHD_PARAMS=${VARNISHD_PARAMS}
- VARNISH_PORT=${VARNISH_PORT}
- BACKEND_HOST=${VARNISH_PROXY1_BACKEND_HOST}
- BACKEND_PORT=${VARNISH_BACKEND_PORT}
- VARNISH_SERVER=${VARNISH_PROXY1_SERVER}
links:
- workspace
networks:
- frontend
### Varnish Proxy 2 ##########################################
proxy2:
build: ./varnish
expose:
- ${VARNISH_PORT}
environment:
- VARNISH_CONFIG=${VARNISH_CONFIG}
- CACHE_SIZE=${VARNISH_PROXY2_CACHE_SIZE}
- VARNISHD_PARAMS=${VARNISHD_PARAMS}
- VARNISH_PORT=${VARNISH_PORT}
- BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST}
- BACKEND_PORT=${VARNISH_BACKEND_PORT}
- VARNISH_SERVER=${VARNISH_PROXY2_SERVER}
links:
- workspace
networks:
- frontend
2017-12-21 01:07:37 +08:00
### HAProxy Load Balancer ####################################
2017-12-20 08:09:19 +08:00
haproxy:
build: ./haproxy
ports:
2017-03-26 09:13:14 +08:00
- "${HAPROXY_HOST_HTTP_PORT}:8085"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
links:
- proxy
- proxy2
### Jenkins ###################################################
2017-05-27 21:24:50 +08:00
jenkins:
build: ./jenkins
environment:
JAVA_OPTS: "-Djava.awt.headless=true"
ports:
- "${JENKINS_HOST_SLAVE_AGENT_PORT}:50000"
- "${JENKINS_HOST_HTTP_PORT}:8080"
privileged: true
volumes:
- ${JENKINS_HOME}:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
2017-05-08 07:20:43 +08:00
networks:
- frontend
- backend
2017-10-18 20:38:10 +08:00
### Grafana Container #########################################
grafana:
build:
context: ./grafana
volumes:
- ${DATA_SAVE_PATH}/grafana:/var/lib/grafana
ports:
- "${GRAFANA_PORT}:3000"
networks:
- backend
2017-05-27 21:24:50 +08:00
### Laravel Echo Server #######################################
laravel-echo-server:
build:
context: ./laravel-echo-server
volumes:
- ./laravel-echo-server/laravel-echo-server.json:/app/laravel-echo-server.json:ro
ports:
- "${LARAVEL_ECHO_SERVER_PORT}:6001"
links:
- redis
networks:
- frontend
- backend
2018-02-11 18:36:57 +08:00
### Solr Container #########################################
solr:
build:
context: ./solr
args:
- SOLR_VERSION=${SOLR_VERSION}
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
volumes:
- ${DATA_SAVE_PATH}/solr:/opt/solr/server/solr/mycores
ports:
- "${SOLR_PORT}:8983"
networks:
- backend
2017-09-12 04:13:44 +08:00
### AWS EB-CLI ####
aws:
build:
context: ./aws
volumes_from:
- applications
depends_on:
- workspace
tty: true
### Networks Setup ############################################
networks:
frontend:
driver: "bridge"
backend:
driver: "bridge"
### Volumes Setup #############################################
2016-11-01 22:03:47 +08:00
volumes:
mysql:
driver: "local"
percona:
driver: "local"
2017-03-26 08:30:59 +08:00
mssql:
driver: "local"
postgres:
driver: "local"
memcached:
driver: "local"
redis:
driver: "local"
neo4j:
driver: "local"
mariadb:
driver: "local"
mongo:
driver: "local"
minio:
driver: "local"
rethinkdb:
driver: "local"
phpmyadmin:
driver: "local"
adminer:
driver: "local"
aerospike:
driver: "local"
caddy:
driver: "local"
elasticsearch-data:
driver: "local"
elasticsearch-plugins:
driver: "local"