From ca45806aaa9b394f62629aaa4b05f167b584c91b Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 12:34:20 +0100 Subject: [PATCH 01/17] Updated gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7c6f11b7..b3403af6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea /logs /data +.env \ No newline at end of file From 474504f1d308250e8d2a5bba4e3a92eb50601d5a Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 12:35:28 +0100 Subject: [PATCH 02/17] Added env-example and adjusted docker-compose yml to support new env file --- .env | 5 ++ docker-compose.yml | 3 +- env-example | 164 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 env-example diff --git a/.env b/.env index accd09a0..7eac1a8b 100644 --- a/.env +++ b/.env @@ -1 +1,6 @@ COMPOSE_CONVERT_WINDOWS_PATHS=1 + +# APPLICATIONS +APPLICATIONS_HOST_DIR=../ +APPLICATIONS_IMAGE_NAME=tianon/true +APPLICATIONS_CONTAINER_NAME=applications \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 67af2244..094ed9ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,7 @@ services: applications: image: tianon/true volumes: - - ../:/var/www -# - ../sample/:/var/www/sample + - ${APPLICATIONS_HOST_DIR}:/var/www ### Workspace Utilities Container ########################### diff --git a/env-example b/env-example new file mode 100644 index 00000000..5fa13c93 --- /dev/null +++ b/env-example @@ -0,0 +1,164 @@ +################## +# DOCKER COMPOSE # +# ################ + +DOCKER_HOST_IP=10.0.75.1 + +# Switch between PHP and HHVM interpreter +# PHP_INTERPRETER=hhvm +PHP_INTERPRETER=php-fpm + +# Switch between supported PHP versions... does not apply for HHVM. +# Please see composer.json in Laravel Framework for the minimum Php Version +#PHP_VERSION=55 +#PHP_VERSION=56 +PHP_VERSION=70 + +# APPLICATIONS +APPLICATIONS_HOST_DIR=../ +APPLICATIONS_IMAGE_NAME=tianon/true +APPLICATIONS_CONTAINER_NAME=applications + +# WORKSPACE +WORKSPACE_BUILD_PATH=./workspace +WORKSPACE_CONTAINER_NAME=workspace +WORKSPACE_INSTALL_XDEBUG=false +WORKSPACE_INSTALL_MONGO=false +WORKSPACE_INSTALL_NODE=false +WORKSPACE_INSTALL_YARN=false +WORKSPACE_INSTALL_DRUSH=false +WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false +WORKSPACE_COMPOSER_GLOBAL_INSTALL=false +WORKSPACE_INSTALL_WORKSPACE_SSH=false +WORKSPACE_PUID=1000 +WORKSPACE_PGID=1000 +WORKSPACE_NODE_VERSION=stable +WORKSPACE_TIMEZONE=UTC +WORKSPACE_SSH_PORT=2222 + + +# PHP_FPM +PHP_FPM_BUILD_PATH=./php-fpm +PHP_FPM_CONTAINER_NAME=php-fpm +PHP_FPM_DOCKER_FILE=Dockerfile-70 +PHP_FPM_INSTALL_XDEBUG=false +PHP_FPM_INSTALL_MONGO=false +PHP_FPM_INSTALL_ZIP_ARCHIVE=false +PHP_FPM_INSTALL_MEMCACHED=false +PHP_FPM_INSTALL_OPCACHE=false +PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false +PHP_FPM_CODEIGNITER=false +PHP_FPM_IDE_CONFIG=serverName=laravel + + +# NGINX +NGINX_BUILD_PATH=./nginx +NGINX_CONTAINER_NAME=nginx +NGINX_HOST_HTTP_PORT=8080 +NGINX_HOST_HTTPS_PORT=8433 +NGINX_HOST_LOG_PATH=./logs/nginx/ + + +# APACHE +APACHE2_BUILD_PATH=./apache2 +APACHE2_CONTAINER_NAME=apache2 +APACHE_HOST_HTTP_PORT=7080 +APACHE_HOST_HTTPS_PORT=7443 +APACHE2_PHP_SOCKET=php-fpm:9000 +APACHE_HOST_LOG_PATH=./logs/apache2 + +# HHVM +HHVM_BUILD_PATH=./hhvm +HHVM_CONTAINER_NAME=hhvm +HHVM_HOST_PORT=9000 + +# MYSQL +MYSQL_BUILD_PATH=./mysql +MYSQL_CONTAINER_NAME=mysql +MYSQL_HOST_PORT=3307 +MYSQL_ROOT_PASSWORD=root + +# MEMCACHED +MEMCACHED_BUILD_PATH=./memcached +MEMCACHED_CONTAINER_NAME=memcached +MEMCACHED_HOST_PORT=11211 + +# BEANSTALKD +BEANSTALKD_BUILD_PATH=./beanstalkd +BEANSTALKD_CONTAINER_NAME=beanstalkd +BEANSTALKD_HOST_PORT=11300 + +# BEANSTALKD CONSOLE +BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console +BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console +BEANSTALKD_CONSOLE_HOST_PORT=2080 + +# RABBITMQ +RABBITMQ_BUILD_PATH=./rabbitmq +RABBITMQ_CONTAINER_NAME=rabbitmq +RABBITMQ_NODE_HOST_PORT=5672 +RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 +RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 +RABBITMQ_DEFAULT_USER=guest +RABBITMQ_DEFAULT_PASS=guest + +# ELASTICSEARCH +ELASTICSEARCH_BUILD_PATH=./elasticsearch/versions/2 +ELASTICSEARCH_CONTAINER_NAME=elasticsearch +ELASTICSEARCH_HOST_HTTP_PORT=9200 +ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 + +#################### +# LARAVEL SPECIFIC # +# ################## + +# APP +APP_ENV=local +APP_KEY=base64:FeZgPe6Pqm7dOCy7Sx0P/PQ9ICMuwAsHLms7DUOxCkI= +APP_DEBUG=true +APP_LOG_LEVEL=debug +APP_URL=http://localhost + +# DATABASE +DB_CONNECTION=mysql + +# Laravel Original: DB_HOST=127.0.0.1 +# must match the service name or container name. +# so if we want to use mariadb it must look like: +# DB_HOST=mariadb +DB_HOST=mysql + +# IMPORTANT: +# - ports are defined in docker-compose.yml like HOST_PORT:CONTAINER_PORT +# - DB_PORT=3306 represents the CONTAINER_PORT not the HOST_PORT +# +# This means that this should not be changed unless you have also tweaked the database image created by +# docker-compose.yml. +DB_PORT=3306 +DB_DATABASE=default +DB_USERNAME=default +DB_PASSWORD=secret + +# DRIVERS +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +QUEUE_DRIVER=sync + +# REDIS +REDIS_HOST=redis +REDIS_PASSWORD=null +REDIS_PORT=6379 + +# MAIL +MAIL_DRIVER=smtp +MAIL_HOST=mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +# PUSHER +PUSHER_APP_ID= +PUSHER_KEY= +PUSHER_SECRET= From 3f13aa4f50e3346fea90cdafb9b1cdfdb6ce01de Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 12:36:44 +0100 Subject: [PATCH 03/17] Removed .env file --- .env | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 7eac1a8b..00000000 --- a/.env +++ /dev/null @@ -1,6 +0,0 @@ -COMPOSE_CONVERT_WINDOWS_PATHS=1 - -# APPLICATIONS -APPLICATIONS_HOST_DIR=../ -APPLICATIONS_IMAGE_NAME=tianon/true -APPLICATIONS_CONTAINER_NAME=applications \ No newline at end of file From fa9ac1e471c9521c272cf43b858e2f13ab41a9eb Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 13:53:40 +0100 Subject: [PATCH 04/17] Added workspace from env file and updated env-example --- docker-compose.yml | 38 +++++++++++++++++++------------------- env-example | 7 +++++-- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 094ed9ab..08f0a95a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,25 +14,25 @@ services: 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 + 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} + - PUID=${WORKSPACE_PUID} + - PGID=${WORKSPACE_PGID} + - NODE_VERSION=${WORKSPACE_NODE_VERSION} + - YARN_VERSION=${WORKSPACE_TIMEZONE} + - TZ=${WORKSPACE_TIMEZONE=UTC} volumes_from: - applications extra_hosts: diff --git a/env-example b/env-example index 5fa13c93..84c29181 100644 --- a/env-example +++ b/env-example @@ -20,16 +20,19 @@ APPLICATIONS_IMAGE_NAME=tianon/true APPLICATIONS_CONTAINER_NAME=applications # WORKSPACE -WORKSPACE_BUILD_PATH=./workspace -WORKSPACE_CONTAINER_NAME=workspace WORKSPACE_INSTALL_XDEBUG=false +WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_MONGO=false WORKSPACE_INSTALL_NODE=false WORKSPACE_INSTALL_YARN=false WORKSPACE_INSTALL_DRUSH=false WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false +WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION=false WORKSPACE_COMPOSER_GLOBAL_INSTALL=false WORKSPACE_INSTALL_WORKSPACE_SSH=false +WORKSPACE_INSTALL_LARAVEL_ENVOY=false +WORKSPACE_INSTALL_DEPLOYER=false +WORKSPACE_INSTALL_LINUXBREW=false WORKSPACE_PUID=1000 WORKSPACE_PGID=1000 WORKSPACE_NODE_VERSION=stable From c112fdffc1598194eb4dcf5283e254c10742ee40 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 14:05:47 +0100 Subject: [PATCH 05/17] Updated PHP-FPM container to accept .env variables --- docker-compose.yml | 24 ++++++++++++------------ env-example | 10 +++++----- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 08f0a95a..49b0f51b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,18 +48,18 @@ services: 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 + - 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_DOCKER_FILE} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_DOCKER_FILE} + - CODEIGNITER=${PHP_FPM_DOCKER_FILE} + dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications expose: diff --git a/env-example b/env-example index 84c29181..f9e86531 100644 --- a/env-example +++ b/env-example @@ -41,18 +41,18 @@ WORKSPACE_SSH_PORT=2222 # PHP_FPM -PHP_FPM_BUILD_PATH=./php-fpm -PHP_FPM_CONTAINER_NAME=php-fpm PHP_FPM_DOCKER_FILE=Dockerfile-70 PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_MONGO=false +PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_ZIP_ARCHIVE=false +PHP_FPM_INSTALL_BCMATH=false +PHP_FPM_INSTALL_PHPREDIS=false PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false +PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_CODEIGNITER=false -PHP_FPM_IDE_CONFIG=serverName=laravel - +PHP_FPM_CODEIGNITER=falses # NGINX NGINX_BUILD_PATH=./nginx From 356dc36fd57802e67b5f669b602943056ca8ca02 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 14:11:16 +0100 Subject: [PATCH 06/17] Added NGINX from env file and updated env-example --- docker-compose.yml | 6 +++--- env-example | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 49b0f51b..e3a9c966 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -82,9 +82,9 @@ services: - PHP_UPSTREAM=php-fpm volumes_from: - applications - volumes: - - ./logs/nginx/:/var/log/nginx - - ./nginx/sites/:/etc/nginx/sites-available + volumes: + - ${NGINX_HOST_LOG_PATH}:/var/log/nginx + - ${NGINX_SITES_PATH}:/etc/nginx/sites-available ports: - "80:80" - "443:443" diff --git a/env-example b/env-example index f9e86531..aa2a7310 100644 --- a/env-example +++ b/env-example @@ -39,7 +39,6 @@ WORKSPACE_NODE_VERSION=stable WORKSPACE_TIMEZONE=UTC WORKSPACE_SSH_PORT=2222 - # PHP_FPM PHP_FPM_DOCKER_FILE=Dockerfile-70 PHP_FPM_INSTALL_XDEBUG=false @@ -55,11 +54,11 @@ PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false PHP_FPM_CODEIGNITER=falses # NGINX -NGINX_BUILD_PATH=./nginx -NGINX_CONTAINER_NAME=nginx NGINX_HOST_HTTP_PORT=8080 NGINX_HOST_HTTPS_PORT=8433 NGINX_HOST_LOG_PATH=./logs/nginx/ +NGINX_SITES_PATH=./nginx/sites/ + # APACHE From 966a84fa39dce4074c082b6be160d5f3af779b8b Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 14:49:43 +0100 Subject: [PATCH 07/17] Fixed timezone issue in docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e3a9c966..073b0ff9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: - PGID=${WORKSPACE_PGID} - NODE_VERSION=${WORKSPACE_NODE_VERSION} - YARN_VERSION=${WORKSPACE_TIMEZONE} - - TZ=${WORKSPACE_TIMEZONE=UTC} + - TZ=${WORKSPACE_TIMEZONE} volumes_from: - applications extra_hosts: From f610aa63d16617f817c1b0015e3debb0b6426c28 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 15:58:38 +0100 Subject: [PATCH 08/17] Removed reference to homestead --- docker-compose.yml | 4 ++-- mysql/Dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 073b0ff9..ba7df27f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -125,8 +125,8 @@ services: build: context: ./mysql args: - - MYSQL_DATABASE=homestead - - MYSQL_USER=homestead + - MYSQL_DATABASE=default + - MYSQL_USER=default - MYSQL_PASSWORD=secret - MYSQL_ROOT_PASSWORD=root volumes: diff --git a/mysql/Dockerfile b/mysql/Dockerfile index 420ddfaa..b483cc24 100644 --- a/mysql/Dockerfile +++ b/mysql/Dockerfile @@ -6,8 +6,8 @@ ADD startup /etc/mysql/startup RUN chown -R mysql:root /var/lib/mysql/ -ARG MYSQL_DATABASE=homestead -ARG MYSQL_USER=homestead +ARG MYSQL_DATABASE=default +ARG MYSQL_USER=default ARG MYSQL_PASSWORD=secret ARG MYSQL_ROOT_PASSWORD=root From a6e0338245b6a4b69eda9c00d49268f3f59f7ff8 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 1 Mar 2017 08:08:20 +0100 Subject: [PATCH 09/17] Removed Homestead reference in all DB containers --- docker-compose.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ba7df27f..48bb0e22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -143,8 +143,8 @@ services: ports: - "3306:3306" environment: - MYSQL_DATABASE: homestead - MYSQL_USER: homestead + MYSQL_DATABASE: default + MYSQL_USER: default MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root @@ -157,8 +157,8 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: homestead - POSTGRES_USER: homestead + POSTGRES_DB: default + POSTGRES_USER: default POSTGRES_PASSWORD: secret ### PostgreSQL PostGis Container ############################ @@ -170,8 +170,8 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: homestead - POSTGRES_USER: homestead + POSTGRES_DB: default + POSTGRES_USER: default POSTGRES_PASSWORD: secret ### Neo4j Container ######################################### From 59dfacee13072c22a121bea4593b991d0c9d8c3c Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 1 Mar 2017 08:17:34 +0100 Subject: [PATCH 10/17] Removed homestead entirely this time --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 48bb0e22..8111bc56 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -296,7 +296,7 @@ services: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 - MYSQL_USER: homestead + MYSQL_USER: default MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root ports: From b45f39599643002305584beaa400d3cf649872e5 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 1 Mar 2017 08:29:17 +0100 Subject: [PATCH 11/17] Removed homestead entirely this time --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8111bc56..49f598f8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -182,7 +182,7 @@ services: - "7474:7474" - "1337:1337" environment: - - NEO4J_AUTH=homestead:secret + - NEO4J_AUTH=default:secret volumes: - neo4j:/var/lib/neo4j/data From 603010cbd50853826fda09639e4ccbf491111eac Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 09:03:12 +0100 Subject: [PATCH 12/17] Split up mysqli and tokenizer --- docker-compose.yml | 7 ++++--- env-example | 3 ++- php-fpm/Dockerfile-56 | 19 ++++++++++++++----- php-fpm/Dockerfile-70 | 19 ++++++++++++++----- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 49f598f8..f9d07779 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,9 +56,10 @@ services: - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - - INSTALL_EXIF=${PHP_FPM_DOCKER_FILE} - - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_DOCKER_FILE} - - CODEIGNITER=${PHP_FPM_DOCKER_FILE} + - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} + - INSTALL_MYSQLI=${PHP_FPM_MYSQLI} + - INSTALL_TOKENIZER=${PHP_FPM_TOKENIZER} dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications diff --git a/env-example b/env-example index aa2a7310..d95f208f 100644 --- a/env-example +++ b/env-example @@ -51,7 +51,8 @@ PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_CODEIGNITER=falses +PHP_FPM_MYSQLI=false +PHP_FPM_TOKENIZER=false # NGINX NGINX_HOST_HTTP_PORT=8080 diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index acd02b80..bb80842e 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -142,13 +142,22 @@ RUN if [ ${INSTALL_OPCACHE} = true ]; then \ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### -# Codeigniter Modifications: +# Mysqli Modifications: ##################################### -ARG CODEIGNITER=false -RUN if [ ${CODEIGNITER} = true ]; then \ - # Install Codeigniter PHP extentions requirements - docker-php-ext-install mysqli && \ +ARG INSTALL_MYSQLI=false +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + # Install mysqli PHP extentions requirements + docker-php-ext-install mysqli && \ +;fi + +##################################### +# Tokenizer Modifications: +##################################### + +ARG INSTALL_TOKENIZER=false +RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ + # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 20aaf5a9..c529fbb2 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -176,13 +176,22 @@ RUN if [ ${INSTALL_OPCACHE} = true ]; then \ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### -# Codeigniter Modifications: +# Mysqli Modifications: ##################################### -ARG CODEIGNITER=false -RUN if [ ${CODEIGNITER} = true ]; then \ - # Install Codeigniter PHP extentions requirements - docker-php-ext-install mysqli && \ +ARG INSTALL_MYSQLI=false +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + # Install mysqli PHP extentions requirements + docker-php-ext-install mysqli && \ +;fi + +##################################### +# Tokenizer Modifications: +##################################### + +ARG INSTALL_TOKENIZER=false +RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ + # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi From 46fcb9e09c22592f8dcbc449de063dad829a6a0d Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 09:31:11 +0100 Subject: [PATCH 13/17] Fixed php-fpm variables and example --- docker-compose.yml | 6 +++--- env-example | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 49f598f8..e5fa0439 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,9 +56,9 @@ services: - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - - INSTALL_EXIF=${PHP_FPM_DOCKER_FILE} - - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_DOCKER_FILE} - - CODEIGNITER=${PHP_FPM_DOCKER_FILE} + - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} + - CODEIGNITER=${PHP_FPM_CODEIGNITER} dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications diff --git a/env-example b/env-example index aa2a7310..6c608125 100644 --- a/env-example +++ b/env-example @@ -51,7 +51,7 @@ PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_CODEIGNITER=falses +PHP_FPM_CODEIGNITER=false # NGINX NGINX_HOST_HTTP_PORT=8080 From 1d918a71d8e5765bfe7a127d3e59d8e99af75209 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 22:20:31 +0100 Subject: [PATCH 14/17] fixed example and docker-compose.yml --- docker-compose.yml | 4 ++-- env-example | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f9d07779..51101e84 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,8 +58,8 @@ services: - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} - - INSTALL_MYSQLI=${PHP_FPM_MYSQLI} - - INSTALL_TOKENIZER=${PHP_FPM_TOKENIZER} + - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} + - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER} dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications diff --git a/env-example b/env-example index d95f208f..3ecca97a 100644 --- a/env-example +++ b/env-example @@ -51,8 +51,8 @@ PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_MYSQLI=false -PHP_FPM_TOKENIZER=false +PHP_FPM_INSTALL_MYSQLI=false +PHP_FPM_INSTALL_TOKENIZER=false # NGINX NGINX_HOST_HTTP_PORT=8080 From 25c27685577388885fa1f50faad311d3c828dcf3 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 22:26:17 +0100 Subject: [PATCH 15/17] Apache should just go to /var/www not /var/www/public when supporting multiple projects --- apache2/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apache2/Dockerfile b/apache2/Dockerfile index 569ba9f3..97636ed9 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -6,11 +6,11 @@ ARG PHP_SOCKET=php-fpm:9000 ENV WEB_PHP_SOCKET=$PHP_SOCKET -ENV WEB_DOCUMENT_ROOT=/var/www/public +ENV WEB_DOCUMENT_ROOT=/var/www/ EXPOSE 80 443 -WORKDIR /var/www/public +WORKDIR /var/www/ ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"] From 36fcc6674e88ca98ada6d0e94e1bc329e4d3bdfd Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Thu, 9 Mar 2017 09:29:07 +0100 Subject: [PATCH 16/17] Seperated mysqli and tokenizer as seperate options without putting them under code igniter --- docker-compose.yml | 2 +- php-fpm/Dockerfile-56 | 6 ++---- php-fpm/Dockerfile-70 | 7 ++----- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 27ae21b2..e9254784 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: applications: image: tianon/true volumes: - - ${APPLICATIONS_HOST_DIR}:/var/www + - ${APPLICATIONS_HOST_DIR}:/var/www ### Workspace Utilities Container ########################### diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 1775cf61..6c63d72d 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -149,9 +149,8 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - # Install mysqli PHP extentions requirements - docker-php-ext-install mysqli && \ +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysqli \ ;fi ##################################### @@ -160,7 +159,6 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \ ARG INSTALL_TOKENIZER=false RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ - # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index c529fbb2..d0ddaf09 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -178,11 +178,9 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### # Mysqli Modifications: ##################################### - ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - # Install mysqli PHP extentions requirements - docker-php-ext-install mysqli && \ +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysqli \ ;fi ##################################### @@ -191,7 +189,6 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \ ARG INSTALL_TOKENIZER=false RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ - # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi From ab1d5bae95acdf59ed779bff37d8f7efbb7c0e99 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Mon, 13 Mar 2017 21:03:31 -0400 Subject: [PATCH 17/17] complete missings --- .env.example | 124 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 91 ++++++++++++++++----------------- 2 files changed, 168 insertions(+), 47 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..91762646 --- /dev/null +++ b/.env.example @@ -0,0 +1,124 @@ +### Application +# Point to your application code, wish should be available at `/var/www` +APPLICATIONS_HOST_DIR=../ + +### PHP version (Does not apply for HHVM) +# PHP_VERSION=55 +# PHP_VERSION=56 +PHP_VERSION=70 + +### PHP interpreter +# PHP_INTERPRETER=hhvm +PHP_INTERPRETER=php-fpm + +### WORKSPACE Container +WORKSPACE_INSTALL_XDEBUG=false +WORKSPACE_INSTALL_SOAP=false +WORKSPACE_INSTALL_MONGO=false +WORKSPACE_INSTALL_NODE=false +WORKSPACE_INSTALL_YARN=false +WORKSPACE_INSTALL_DRUSH=false +WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false +WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION=false +WORKSPACE_COMPOSER_GLOBAL_INSTALL=false +WORKSPACE_INSTALL_WORKSPACE_SSH=false +WORKSPACE_INSTALL_LARAVEL_ENVOY=false +WORKSPACE_INSTALL_DEPLOYER=false +WORKSPACE_INSTALL_LINUXBREW=false +WORKSPACE_PUID=1000 +WORKSPACE_PGID=1000 +WORKSPACE_NODE_VERSION=stable +WORKSPACE_TIMEZONE=UTC +WORKSPACE_SSH_PORT=2222 + +### PHP_FPM Container +PHP_FPM_DOCKER_FILE=Dockerfile-70 +PHP_FPM_INSTALL_XDEBUG=false +PHP_FPM_INSTALL_MONGO=false +PHP_FPM_INSTALL_SOAP=false +PHP_FPM_INSTALL_ZIP_ARCHIVE=false +PHP_FPM_INSTALL_BCMATH=false +PHP_FPM_INSTALL_PHPREDIS=false +PHP_FPM_INSTALL_MEMCACHED=false +PHP_FPM_INSTALL_OPCACHE=false +PHP_FPM_INSTALL_EXIF=false +PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false +PHP_FPM_INSTALL_MYSQLI=false +PHP_FPM_INSTALL_TOKENIZER=false + +### NGINX Container +NGINX_HOST_HTTP_PORT=80 +NGINX_HOST_HTTPS_PORT=433 +NGINX_HOST_LOG_PATH=./logs/nginx/ +NGINX_SITES_PATH=./nginx/sites/ + +### APACHE Container +APACHE_HOST_HTTP_PORT=80 +APACHE_HOST_HTTPS_PORT=443 +APACHE2_PHP_SOCKET=php-fpm:9000 +APACHE_HOST_LOG_PATH=./logs/apache2 +PHP_SOCKET=php-fpm:9000 + +### MYSQL Container +MYSQL_DATABASE=default +MYSQL_USER=default +MYSQL_PASSWORD=secret +MYSQL_PORT=3306 +MYSQL_ROOT_PASSWORD=root + +### MARIADB Container +MARIADB_DATABASE=default +MARIADB_USER=default +MARIADB_PASSWORD=secret +MARIADB_PORT=3306 + + +### POSTGRES Container +POSTGRES_DB=default +POSTGRES_USER=default +POSTGRES_PASSWORD=secret +POSTGRES_PORT=5432 + +### RABBITMQ Container +RABBITMQ_NODE_HOST_PORT=5672 +RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 +RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 +RABBITMQ_DEFAULT_USER=guest +RABBITMQ_DEFAULT_PASS=guest + +### ELASTICSEARCH Container +ELASTICSEARCH_HOST_HTTP_PORT=9200 +ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 + +### MEMCACHED Container +MEMCACHED_HOST_PORT=11211 + +### BEANSTALKD CONSOLE +BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console +BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console +BEANSTALKD_CONSOLE_HOST_PORT=2080 + +### BEANSTALKD Container +BEANSTALKD_HOST_PORT=11300 + +### SELENIUM Container +SELENIUM_PORT=4444 + +### MINIO Container +MINIO_PORT=9000 + +### PHP MY ADMIN Container +# PMA_DB_ENGINE=mariadb +PMA_DB_ENGINE=mysql +PMA_USER=default +PMA_PASSWORD=secret +PMA_ROOT_PASSWORD=secret +PMA_PORT=88 + +### MISC +# Replace with your Docker Host IP (will be appended to /etc/hosts) +DOCKER_HOST_IP=10.0.75.1 +# The Remote Interpreter entry matching name `laradock` +PHP_IDE_CONFIG=serverName=laradock + +### to be continue neo4j mongo rethinkdb redis aerospike pgadmin ... diff --git a/docker-compose.yml b/docker-compose.yml index e9254784..51235b70 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,10 +36,9 @@ services: volumes_from: - applications extra_hosts: - # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - - "dockerhost:10.0.75.1" + - "dockerhost:${DOCKER_HOST_IP}" ports: - - "2222:22" + - "${WORKSPACE_SSH_PORT}:22" tty: true ### PHP-FPM Container ####################################### @@ -68,11 +67,9 @@ services: links: - workspace extra_hosts: - # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - - "dockerhost:10.0.75.1" + - "dockerhost:${DOCKER_HOST_IP}" environment: - # IMPORTANT: Set the Remote Interpreter entry matching name to `laravel` - - PHP_IDE_CONFIG=serverName=laravel + - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} ### Nginx Server Container ################################## @@ -87,8 +84,8 @@ services: - ${NGINX_HOST_LOG_PATH}:/var/log/nginx - ${NGINX_SITES_PATH}:/etc/nginx/sites-available ports: - - "80:80" - - "443:443" + - "${NGINX_HOST_HTTP_PORT}:80" + - "${NGINX_HOST_HTTPS_PORT}:443" links: - php-fpm @@ -98,14 +95,14 @@ services: build: context: ./apache2 args: - - PHP_SOCKET=php-fpm:9000 + - PHP_SOCKET=${PHP_SOCKET} volumes_from: - applications volumes: - - ./logs/apache2:/var/log/apache2 + - ${APACHE_HOST_LOG_PATH}:/var/log/apache2 ports: - - "80:80" - - "443:443" + - "${APACHE_HOST_HTTP_PORT}:80" + - "${APACHE_HOST_HTTPS_PORT}:443" links: - php-fpm @@ -127,7 +124,7 @@ services: volumes: - minio:/export ports: - - "9000:9000" + - "${MINIO_PORT}:9000" environment: MINIO_ACCESS_KEY: access MINIO_SECRET_KEY: secretkey @@ -138,14 +135,14 @@ services: build: context: ./mysql args: - - MYSQL_DATABASE=default - - MYSQL_USER=default - - MYSQL_PASSWORD=secret - - MYSQL_ROOT_PASSWORD=root + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes: - mysql:/var/lib/mysql ports: - - "3306:3306" + - "${MYSQL_PORT}:3306" ### MariaDB Container ####################################### @@ -154,12 +151,12 @@ services: volumes: - mariadb:/var/lib/mysql ports: - - "3306:3306" + - "${MARIADB_PORT}:3306" environment: - MYSQL_DATABASE: default - MYSQL_USER: default - MYSQL_PASSWORD: secret - MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: ${MARIADB_DATABASE} + MYSQL_USER: ${MARIADB_USER} + MYSQL_PASSWORD: ${MARIADB_PASSWORD} + MYSQL_ROOT_PASSWORD: ${MARIADB_PORT} ### PostgreSQL Container #################################### @@ -168,11 +165,11 @@ services: volumes: - postgres:/var/lib/postgresql/data ports: - - "5432:5432" + - "${POSTGRES_PORT}:5432" environment: - POSTGRES_DB: default - POSTGRES_USER: default - POSTGRES_PASSWORD: secret + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ### PostgreSQL PostGis Container ############################ @@ -181,11 +178,11 @@ services: volumes: - postgres:/var/lib/postgresql/data ports: - - "5432:5432" + - "${POSTGRES_PORT}:5432" environment: - POSTGRES_DB: default - POSTGRES_USER: default - POSTGRES_PASSWORD: secret + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ### Neo4j Container ######################################### @@ -248,7 +245,7 @@ services: volumes: - memcached:/var/lib/memcached ports: - - "11211:11211" + - "${MEMCACHED_HOST_PORT}:11211" links: - php-fpm @@ -257,7 +254,7 @@ services: beanstalkd: build: ./beanstalkd ports: - - "11300:11300" + - "${BEANSTALKD_HOST_PORT}:11300" privileged: true links: - php-fpm @@ -267,13 +264,13 @@ services: rabbitmq: build: ./rabbitmq ports: - - "5672:5672" - - "15671:15671" - - "8080:15672" + - "${RABBITMQ_NODE_HOST_PORT}:5672" + - "${RABBITMQ_MANAGEMENT_HTTP_HOST_PORT}:15672" + - "${RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT}:15671" privileged: true environment: - RABBITMQ_DEFAULT_USER: guest - RABBITMQ_DEFAULT_PASS: guest + RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER} + RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS} links: - php-fpm @@ -309,14 +306,14 @@ services: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 - MYSQL_USER: default - MYSQL_PASSWORD: secret - MYSQL_ROOT_PASSWORD: root + MYSQL_USER: ${PMA_USER} + MYSQL_PASSWORD: ${PMA_PASSWORD} + MYSQL_ROOT_PASSWORD: ${PMA_ROOT_PASSWORD} ports: - - "8080:80" + - "${PMA_PORT}:80" links: # for mysql container - - "mysql:db" + - "${PMA_DB_ENGINE}:db" # for mariadb container # - "mariadb:db" @@ -337,8 +334,8 @@ services: - elasticsearch-data:/usr/share/elasticsearch/data - elasticsearch-plugins:/usr/share/elasticsearch/data ports: - - "9200:9200" - - "9300:9300" + - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200" + - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300" links: - php-fpm @@ -347,7 +344,7 @@ services: selenium: build: ./selenium ports: - - "4444:4444" + - "${SELENIUM_PORT}:4444" volumes: # see https://github.com/SeleniumHQ/docker-selenium#running-the-images - /dev/shm:/dev/shm