Merge branch 'multiple-projects-improvement'

* multiple-projects-improvement:
  updated env-example and removed .env.example
  complete missings
  Seperated mysqli and tokenizer as seperate options without putting them under code igniter
  Apache should just go to /var/www not /var/www/public when supporting multiple projects
  fixed example and docker-compose.yml
  Fixed php-fpm variables and example
  Split up mysqli and tokenizer
  Removed homestead entirely this time
  Removed homestead entirely this time
  Removed Homestead reference in all DB containers
  Removed reference to homestead
  Fixed timezone issue in docker-compose.yml
  Added NGINX from env file and updated env-example
  Updated PHP-FPM container to accept .env variables
  Added workspace from env file and updated env-example
  Removed .env file
  Added env-example and adjusted docker-compose yml to support new env file
  Updated gitignore
This commit is contained in:
Mahmoud Zalt
2017-03-16 16:10:28 -04:00
8 changed files with 235 additions and 108 deletions

View File

@@ -7,42 +7,39 @@ services:
applications:
image: tianon/true
volumes:
- ../:/var/www
# - ../sample/:/var/www/sample
- ${APPLICATIONS_HOST_DIR}:/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
- INSTALL_MC=false
- PUID=1000
- PGID=1000
- NODE_VERSION=stable
- YARN_VERSION=latest
- TZ=UTC
# dockerfile: Dockerfile-71
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:
# 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 #######################################
@@ -51,19 +48,19 @@ 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
- GHOSTSCRIPT=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_INSTALL_EXIF}
- INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION}
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
- INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
dockerfile: ${PHP_FPM_DOCKER_FILE}
volumes_from:
- applications
expose:
@@ -71,11 +68,9 @@ services:
depends_on:
- 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 ##################################
@@ -86,12 +81,12 @@ 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"
- "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443"
depends_on:
- php-fpm
@@ -101,14 +96,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"
depends_on:
- php-fpm
@@ -130,7 +125,7 @@ services:
volumes:
- minio:/export
ports:
- "9000:9000"
- "${MINIO_PORT}:9000"
environment:
MINIO_ACCESS_KEY: access
MINIO_SECRET_KEY: secretkey
@@ -141,14 +136,14 @@ services:
build:
context: ./mysql
args:
- MYSQL_DATABASE=homestead
- MYSQL_USER=homestead
- 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 #######################################
@@ -157,12 +152,12 @@ services:
volumes:
- mariadb:/var/lib/mysql
ports:
- "3306:3306"
- "${MARIADB_PORT}:3306"
environment:
MYSQL_DATABASE: homestead
MYSQL_USER: homestead
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 ####################################
@@ -171,11 +166,11 @@ services:
volumes:
- postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
- "${POSTGRES_PORT}:5432"
environment:
POSTGRES_DB: homestead
POSTGRES_USER: homestead
POSTGRES_PASSWORD: secret
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
### PostgreSQL PostGis Container ############################
@@ -184,11 +179,11 @@ services:
volumes:
- postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
- "${POSTGRES_PORT}:5432"
environment:
POSTGRES_DB: homestead
POSTGRES_USER: homestead
POSTGRES_PASSWORD: secret
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
### Neo4j Container #########################################
@@ -198,7 +193,7 @@ services:
- "7474:7474"
- "1337:1337"
environment:
- NEO4J_AUTH=homestead:secret
- NEO4J_AUTH=default:secret
volumes:
- neo4j:/var/lib/neo4j/data
@@ -251,7 +246,7 @@ services:
volumes:
- memcached:/var/lib/memcached
ports:
- "11211:11211"
- "${MEMCACHED_HOST_PORT}:11211"
depends_on:
- php-fpm
@@ -260,7 +255,7 @@ services:
beanstalkd:
build: ./beanstalkd
ports:
- "11300:11300"
- "${BEANSTALKD_HOST_PORT}:11300"
privileged: true
depends_on:
- php-fpm
@@ -270,13 +265,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}
depends_on:
- php-fpm
@@ -312,16 +307,13 @@ services:
build: ./phpmyadmin
environment:
PMA_ARBITRARY: 1
MYSQL_USER: homestead
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"
depends_on:
# for mysql container
- "mysql"
# for mariadb container
# - "mariadb"
- "${PMA_DB_ENGINE}"
### pgAdmin Container #######################################
@@ -340,8 +332,8 @@ services:
- elasticsearch-data:/usr/share/elasticsearch/data
- elasticsearch-plugins:/usr/share/elasticsearch/plugins
ports:
- "9200:9200"
- "9300:9300"
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
depends_on:
- php-fpm
@@ -370,9 +362,8 @@ 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
### Volumes Setup ###########################################
@@ -406,5 +397,3 @@ volumes:
driver: "local"
elasticsearch-plugins:
driver: "local"
sessions: ## nothing is connected to this (- ./data/sessions:/sessions)
driver: "local"