From 8de9eca8ae1c0de103e37e77b5f3160f2dc8717d Mon Sep 17 00:00:00 2001 From: ZeroC0D3 Team Date: Fri, 17 Mar 2017 13:57:54 +0700 Subject: [PATCH] Fixing the docker-compose.yml --- docker-compose.yml | 512 +++++++++++++++++++++++---------------------- 1 file changed, 263 insertions(+), 249 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e9ce663a..677b3733 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,352 +5,368 @@ services: ### Applications Code Container ############################# applications: - image: tianon/true - volumes: - - ../:/var/www -# - ../sample/:/var/www/sample + image: tianon/true + volumes: + - ${APPLICATION}:/var/www ### Workspace Utilities Container ########################### workspace: - build: - context: ./workspace - args: - - INSTALL_XDEBUG=false - - INSTALL_SOAP=false - - INSTALL_MONGO=false - - INSTALL_NODE=false - - INSTALL_YARN=false - - INSTALL_DRUSH=false - - INSTALL_AEROSPIKE_EXTENSION=false - - INSTALL_V8JS_EXTENSION=false - - COMPOSER_GLOBAL_INSTALL=false - - INSTALL_WORKSPACE_SSH=false - - INSTALL_LARAVEL_ENVOY=false - - INSTALL_DEPLOYER=false - - INSTALL_LINUXBREW=false - - PUID=1000 - - PGID=1000 - - NODE_VERSION=stable - - YARN_VERSION=latest - - TZ=UTC - volumes_from: - - applications - extra_hosts: - # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - - "dockerhost:10.0.75.1" - ports: - - "2222:22" - tty: true + build: + context: ./workspace + args: + - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} + - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} + - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO} + - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} + - INSTALL_YARN=${WORKSPACE_INSTALL_YARN} + - INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH} + - INSTALL_AEROSPIKE_EXTENSION=${WORKSPACE_INSTALL_AEROSPIKE_EXTENSION} + - INSTALL_V8JS_EXTENSION=${WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION} + - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} + - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH} + - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY} + - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_LARAVEL_ENVOY} + - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LARAVEL_ENVOY} + - INSTALL_MC=${WORKSPACE_INSTALL_MC} + - PUID=${WORKSPACE_PUID} + - PGID=${WORKSPACE_PGID} + - NODE_VERSION=${WORKSPACE_NODE_VERSION} + - YARN_VERSION=${WORKSPACE_TIMEZONE} + - TZ=${WORKSPACE_TIMEZONE} + volumes_from: + - applications + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + ports: + - "${WORKSPACE_SSH_PORT}:22" + tty: true ### PHP-FPM Container ####################################### php-fpm: - build: - context: ./php-fpm - args: - - INSTALL_XDEBUG=false - - INSTALL_SOAP=false - - INSTALL_MONGO=false - - INSTALL_ZIP_ARCHIVE=false - - INSTALL_BCMATH=false - - INSTALL_PHPREDIS=false - - INSTALL_MEMCACHED=false - - INSTALL_OPCACHE=false - - INSTALL_EXIF=false - - INSTALL_AEROSPIKE_EXTENSION=false - - CODEIGNITER=false - dockerfile: Dockerfile-70 - volumes_from: - - applications - expose: - - "9000" - links: - - workspace - extra_hosts: - # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - - "dockerhost:10.0.75.1" - environment: - # IMPORTANT: Set the Remote Interpreter entry matching name to `laravel` - - PHP_IDE_CONFIG=serverName=laravel + build: + context: ./php-fpm + args: + - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} + - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} + - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} + - INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE} + - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} + - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} + - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} + - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} + - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} + - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} + - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER} + - INSTALL_INTL=${PHP_FPM_INSTALL_INTL} + dockerfile: ${PHP_FPM_DOCKER_FILE} + volumes_from: + - applications + expose: + - "9000" + depends_on: + - workspace + extra_hosts: + - "dockerhost:${DOCKER_HOST_IP}" + environment: + - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} ### Nginx Server Container ################################## nginx: - build: - context: ./nginx - args: - - PHP_UPSTREAM=php-fpm - volumes_from: + build: + context: ./nginx + args: + - PHP_UPSTREAM=php-fpm + volumes_from: - applications - volumes: - - ./logs/nginx/:/var/log/nginx - - ./nginx/sites/:/etc/nginx/sites-available - ports: - - "80:80" - - "443:443" - links: + volumes: + - ${NGINX_HOST_LOG_PATH}:/var/log/nginx + - ${NGINX_SITES_PATH}:/etc/nginx/sites-available + ports: + - "${NGINX_HOST_HTTP_PORT}:80" + - "${NGINX_HOST_HTTPS_PORT}:443" + depends_on: - php-fpm ### Apache Server Container ################################# apache2: - build: - context: ./apache2 - args: - - PHP_SOCKET=php-fpm:9000 - volumes_from: - - applications - volumes: - - ./logs/apache2:/var/log/apache2 - ports: - - "80:80" - - "443:443" - links: - - php-fpm + build: + context: ./apache2 + args: + - PHP_SOCKET=${PHP_SOCKET} + volumes_from: + - applications + volumes: + - ${APACHE_HOST_LOG_PATH}:/var/log/apache2 + ports: + - "${APACHE_HOST_HTTP_PORT}:80" + - "${APACHE_HOST_HTTPS_PORT}:443" + depends_on: + - php-fpm ### HHVM Container ########################################## hhvm: - build: ./hhvm - volumes_from: - - applications - expose: - - "9000" - links: - - workspace + build: ./hhvm + volumes_from: + - applications + expose: + - "9000" + depends_on: + - workspace ### Minio Container ######################################### minio: - build: ./minio - volumes: - - minio:/export - ports: - - "9000:9000" - environment: - MINIO_ACCESS_KEY: access - MINIO_SECRET_KEY: secretkey + build: ./minio + volumes: + - minio:/export + ports: + - "${MINIO_PORT}:9000" + environment: + MINIO_ACCESS_KEY: access + MINIO_SECRET_KEY: secretkey ### MySQL Container ######################################### mysql: - build: - context: ./mysql - args: - - MYSQL_DATABASE=homestead - - MYSQL_USER=homestead - - MYSQL_PASSWORD=secret - - MYSQL_ROOT_PASSWORD=root - volumes: - - mysql:/var/lib/mysql - ports: - - "3306:3306" + build: + context: ./mysql + args: + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + volumes: + - mysql:/var/lib/mysql + ports: + - "${MYSQL_PORT}:3306" ### MariaDB Container ####################################### mariadb: - build: ./mariadb - volumes: - - mariadb:/var/lib/mysql - ports: - - "3306:3306" - environment: - - MYSQL_DATABASE=homestead - - MYSQL_USER=homestead - - MYSQL_PASSWORD=secret - - MYSQL_ROOT_PASSWORD=root + build: ./mariadb + volumes: + - mariadb:/var/lib/mysql + ports: + - "${MARIADB_PORT}:3306" + environment: + - MYSQL_DATABASE=${MARIADB_DATABASE} + - MYSQL_USER=${MARIADB_USER} + - MYSQL_PASSWORD=${MARIADB_PASSWORD} + - MYSQL_ROOT_PASSWORD=${MARIADB_PORT} ### PostgreSQL Container #################################### postgres: - build: ./postgres - volumes: - - postgres:/var/lib/postgresql/data - ports: - - "5432:5432" - environment: - - POSTGRES_DB=homestead - - POSTGRES_USER=homestead - - POSTGRES_PASSWORD=secret + build: ./postgres + volumes: + - postgres:/var/lib/postgresql/data + ports: + - "${POSTGRES_PORT}:5432" + environment: + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ### PostgreSQL PostGis Container ############################ postgres-postgis: - build: ./postgres-postgis - volumes: - - postgres:/var/lib/postgresql/data - ports: - - "5432:5432" - environment: - - POSTGRES_DB=homestead - - POSTGRES_USER=homestead - - POSTGRES_PASSWORD=secret + build: ./postgres-postgis + volumes: + - postgres:/var/lib/postgresql/data + ports: + - "${POSTGRES_PORT}:5432" + environment: + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ### Neo4j Container ######################################### neo4j: - build: ./neo4j - ports: - - "7474:7474" - - "1337:1337" - environment: - - NEO4J_AUTH=homestead:secret - volumes: - - neo4j:/var/lib/neo4j/data + build: ./neo4j + ports: + - "7474:7474" + - "1337:1337" + environment: + - NEO4J_AUTH=default:secret + volumes: + - neo4j:/var/lib/neo4j/data ### MongoDB Container ####################################### mongo: - build: ./mongo - ports: - - "27017:27017" - volumes: - - mongo:/data/db + build: ./mongo + ports: + - "27017:27017" + volumes: + - mongo:/data/db ### RethinkDB Container ####################################### rethinkdb: - build: ./rethinkdb - ports: - - "8090:8080" - volumes: - - rethinkdb:/data/rethinkdb_data + build: ./rethinkdb + ports: + - "8090:8080" + volumes: + - rethinkdb:/data/rethinkdb_data ### Redis Container ######################################### redis: - build: ./redis - volumes: - - redis:/data - ports: - - "6379:6379" + build: ./redis + volumes: + - redis:/data + ports: + - "6379:6379" ### Aerospike c Container ################################### aerospike: - build: ./aerospike - volumes_from: - - workspace - volumes: - - aerospike:/opt/aerospike/data - ports: - - "3000:3000" - - "3001:3001" - - "3002:3002" - - "3003:3003" + build: ./aerospike + volumes_from: + - workspace + volumes: + - aerospike:/opt/aerospike/data + ports: + - "3000:3000" + - "3001:3001" + - "3002:3002" + - "3003:3003" ### Memcached Container ##################################### memcached: - build: ./memcached - volumes: - - memcached:/var/lib/memcached - ports: - - "11211:11211" - links: - - php-fpm + build: ./memcached + volumes: + - memcached:/var/lib/memcached + ports: + - "${MEMCACHED_HOST_PORT}:11211" + depends_on: + - php-fpm ### Beanstalkd Container #################################### beanstalkd: - build: ./beanstalkd - ports: - - "11300:11300" - privileged: true - links: - - php-fpm + build: ./beanstalkd + ports: + - "${BEANSTALKD_HOST_PORT}:11300" + privileged: true + depends_on: + - php-fpm ### RabbitMQ Container ###################################### rabbitmq: - build: ./rabbitmq - ports: - - "5672:5672" - - "15671:15671" - - "8080:15672" - privileged: true - environment: - - RABBITMQ_DEFAULT_USER=guest - - RABBITMQ_DEFAULT_PASS=guest - links: - - php-fpm + 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 ### Beanstalkd Console Container ############################ beanstalkd-console: - build: ./beanstalkd-console - ports: - - "2080:2080" - links: - - beanstalkd + build: ./beanstalkd-console + ports: + - "2080:2080" + depends_on: + - beanstalkd ### Caddy Server Container ################################## caddy: - build: ./caddy - ports: - - "80:80" - - "443:443" - - "2015:2015" - volumes_from: - - applications - volumes: - - ./caddy/Caddyfile:/etc/Caddyfile - - ./logs/caddy:/var/log/caddy - - caddy:/root/.caddy - links: - - php-fpm + build: ./caddy + ports: + - "80:80" + - "443:443" + - "2015:2015" + volumes_from: + - applications + volumes: + - ./caddy/Caddyfile:/etc/Caddyfile + - ./logs/caddy:/var/log/caddy + - caddy:/root/.caddy + depends_on: + - php-fpm ### phpMyAdmin Container #################################### phpmyadmin: - build: ./phpmyadmin - environment: - - PMA_ARBITRARY=1 - - MYSQL_USER=homestead - - MYSQL_PASSWORD=secret - - MYSQL_ROOT_PASSWORD=root - ports: - - "8080:80" - links: - # for mysql container - - "mysql:db" - # for mariadb container - # - "mariadb:db" + 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}" ### pgAdmin Container ####################################### pgadmin: - build: ./pgadmin - ports: - - "5050:5050" - links: - - postgres + build: ./pgadmin + ports: + - "5050:5050" + depends_on: + - postgres ### ElasticSearch Container ################################# elasticsearch: - build: ./elasticsearch - volumes: - - elasticsearch-data:/usr/share/elasticsearch/data - - elasticsearch-plugins:/usr/share/elasticsearch/data - ports: - - "9200:9200" - - "9300:9300" - links: - - php-fpm + build: ./elasticsearch + volumes: + - elasticsearch-data:/usr/share/elasticsearch/data + - elasticsearch-plugins:/usr/share/elasticsearch/plugins + ports: + - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200" + - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300" + depends_on: + - php-fpm + +### 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" + +### Mailhog Container ######################################### + + mailhog: + build: ./mailhog + ports: + - "1025:1025" + - "8025:8025" + ### Selenium Container ######################################### selenium: - build: ./selenium - ports: - - "4444:4444" - volumes: - # see https://github.com/SeleniumHQ/docker-selenium#running-the-images - - /dev/shm:/dev/shm + build: ./selenium + ports: + - "${SELENIUM_PORT}:4444" + volumes: + - /dev/shm:/dev/shm ### Volumes Setup ########################################### @@ -383,5 +399,3 @@ volumes: driver: "local" elasticsearch-plugins: driver: "local" - sessions: ## nothing is connected to this (- ./data/sessions:/sessions) - driver: "local"