diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..9176264 --- /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 e925478..51235b7 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