c00fe5d7e0
* 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
400 lines
11 KiB
YAML
400 lines
11 KiB
YAML
version: '2'
|
|
|
|
services:
|
|
|
|
### Applications Code Container #############################
|
|
|
|
applications:
|
|
image: tianon/true
|
|
volumes:
|
|
- ${APPLICATIONS_HOST_DIR}:/var/www
|
|
|
|
### Workspace Utilities Container ###########################
|
|
|
|
workspace:
|
|
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=${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:
|
|
- "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:
|
|
- applications
|
|
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_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"
|
|
depends_on:
|
|
- workspace
|
|
|
|
### Minio Container #########################################
|
|
|
|
minio:
|
|
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=${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:
|
|
- "${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:
|
|
- "${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:
|
|
- "${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=default:secret
|
|
volumes:
|
|
- neo4j:/var/lib/neo4j/data
|
|
|
|
### MongoDB Container #######################################
|
|
|
|
mongo:
|
|
build: ./mongo
|
|
ports:
|
|
- "27017:27017"
|
|
volumes:
|
|
- mongo:/data/db
|
|
|
|
### RethinkDB Container #######################################
|
|
|
|
rethinkdb:
|
|
build: ./rethinkdb
|
|
ports:
|
|
- "8090:8080"
|
|
volumes:
|
|
- rethinkdb:/data/rethinkdb_data
|
|
|
|
### Redis Container #########################################
|
|
|
|
redis:
|
|
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"
|
|
|
|
|
|
### Memcached Container #####################################
|
|
|
|
memcached:
|
|
build: ./memcached
|
|
volumes:
|
|
- memcached:/var/lib/memcached
|
|
ports:
|
|
- "${MEMCACHED_HOST_PORT}:11211"
|
|
depends_on:
|
|
- php-fpm
|
|
|
|
### Beanstalkd Container ####################################
|
|
|
|
beanstalkd:
|
|
build: ./beanstalkd
|
|
ports:
|
|
- "${BEANSTALKD_HOST_PORT}:11300"
|
|
privileged: true
|
|
depends_on:
|
|
- php-fpm
|
|
|
|
### RabbitMQ Container ######################################
|
|
|
|
rabbitmq:
|
|
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"
|
|
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
|
|
depends_on:
|
|
- php-fpm
|
|
|
|
### phpMyAdmin Container ####################################
|
|
|
|
phpmyadmin:
|
|
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"
|
|
depends_on:
|
|
- postgres
|
|
|
|
### ElasticSearch Container #################################
|
|
|
|
elasticsearch:
|
|
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:
|
|
- "${SELENIUM_PORT}:4444"
|
|
volumes:
|
|
- /dev/shm:/dev/shm
|
|
|
|
### Volumes Setup ###########################################
|
|
|
|
volumes:
|
|
mysql:
|
|
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"
|
|
aerospike:
|
|
driver: "local"
|
|
caddy:
|
|
driver: "local"
|
|
elasticsearch-data:
|
|
driver: "local"
|
|
elasticsearch-plugins:
|
|
driver: "local"
|