-
-
Save victor-shelepen/9e94a459ddedce41969094271455a768 to your computer and use it in GitHub Desktop.
This files are for the article - http://vlikin.blogspot.com/2018/04/drupal-development-docker-compose.html This provides the modified version of the project https://github.com/wodby/docker4drupal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Full documentation available at https://wodby.com/stacks/drupal/docs/local | |
### | |
### IMAGES TAGS CONSIST OF [VERSION]-[STABILITY_TAG] | |
### | |
### [VERSION] is usually a version of application running in a container | |
### [VERSION] sometimes additionally includes major drupal version (see nginx) | |
### [STABILITY_TAG] is a version of image (not application) | |
### [STABILITY_TAG] correspond to git tag of corresponding image repository | |
### | |
### EXAMPLE: wodby/mariadb:10.2-3.1.2 has MariaDB 10.2 and stability tag 3.0.2 | |
### New stability tags include patch updates for applications and other fixes/improvements | |
### Changelog for stability tag can be found at https://github.com/wodby/mariadb/releases | |
### | |
### !!! For better reliability NEVER USE image without stability tag | |
### PROJECT SETTINGS | |
PROJECT_PATH=/home/viktor/dorg/drupal | |
PROJECT_NAME=my_drupal8_project | |
PROJECT_BASE_URL=drupal.docker.localhost | |
DB_NAME=drupal | |
DB_USER=drupal | |
DB_PASSWORD=drupal | |
DB_ROOT_PASSWORD=password | |
DB_HOST=mariadb | |
DB_DRIVER=mysql | |
### --- MARIADB ---- | |
MARIADB_TAG=10.2-3.1.3 | |
#MARIADB_TAG=10.1-3.1.3 | |
### --- VANILLA DRUPAL ---- | |
### [DRUPAL_VERSION]-[PHP_VERSION]-[STABILITY_TAG] | |
DRUPAL_TAG=8-7.1-4.4.1 | |
#DRUPAL_TAG=8-7.0-4.4.1 | |
#DRUPAL_TAG=7-7.1-4.4.1 | |
#DRUPAL_TAG=7-7.0-4.4.1 | |
#DRUPAL_TAG=7-5.6-4.4.1 | |
#DRUPAL_TAG=6-5.6-4.4.1 | |
#DRUPAL_TAG=6-5.3-4.4.1 | |
### --- PHP ---- | |
PHP_TAG=7.1-dev-4.4.1 | |
#PHP_TAG=7.0-dev-4.4.1 | |
#PHP_TAG=5.6-dev-4.4.1 | |
#PHP_TAG=5.3-dev-4.4.1 | |
#PHP_TAG=7.1-dev-macos-4.4.1 | |
#PHP_TAG=7.0-dev-macos-4.4.1 | |
#PHP_TAG=5.6-dev-macos-4.4.1 | |
#PHP_TAG=5.3-dev-macos-4.4.1 | |
### --- NGINX ---- | |
### [DRUPAL_VERSION]-[NGINX_VERSION]-[STABILITY_TAG] | |
NGINX_TAG=8-1.13-4.0.3 | |
#NGINX_TAG=7-1.13-4.0.3 | |
#NGINX_TAG=6-1.13-4.0.3 | |
#NGINX_TAG=8-1.12-4.0.3 | |
#NGINX_TAG=7-1.12-4.0.3 | |
#NGINX_TAG=6-1.12-4.0.3 | |
### --- SOLR --- | |
### [DRUPAL_VERSION]-[SOLR_VERSION]-[STABILITY_TAG] | |
SOLR_TAG=8-6.6-2.4.0 | |
#SOLR_TAG=8-6.5-2.4.0 | |
#SOLR_TAG=8-6.4-2.4.0 | |
#SOLR_TAG=8-6.3-2.4.0 | |
#SOLR_TAG=8-5.5-2.4.0 | |
#SOLR_TAG=8-7.0-2.4.0 | |
#SOLR_TAG=8-7.1-2.4.0 | |
#SOLR_TAG=8-7.2-2.4.0 | |
#SOLR_TAG=7-5.4-2.4.0 | |
### --- REDIS --- | |
REDIS_TAG=4.0-2.1.5 | |
#REDIS_TAG=3.2-2.1.5 | |
### --- POSTGRESQL ---- | |
POSTGRES_TAG=10.1-1.3.0 | |
#POSTGRES_TAG=9.6-1.3.0 | |
#POSTGRES_TAG=9.5-1.3.0 | |
#POSTGRES_TAG=9.4-1.3.0 | |
#POSTGRES_TAG=9.3-1.3.0 | |
### OTHERS | |
ADMINER_TAG=4.3-1.1.0 | |
APACHE_TAG=2.4-3.0.5 | |
ATHENAPDF_TAG=2.10.0 | |
DRUPAL_NODE_TAG=1.0-1.0.0 | |
MEMCACHED_TAG=1.4-2.0.0 | |
RSYSLOG_TAG=latest | |
VARNISH_TAG=4.1-2.3.0 | |
WEBGRIND_TAG=1.5-1.3.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "2.3" | |
services: | |
mariadb: | |
image: wodby/mariadb:$MARIADB_TAG | |
container_name: "${PROJECT_NAME}_mariadb" | |
# stop_grace_period: 30s | |
environment: | |
MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD | |
MYSQL_DATABASE: $DB_NAME | |
MYSQL_USER: $DB_USER | |
MYSQL_PASSWORD: $DB_PASSWORD | |
# volumes: | |
# - ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here. | |
# - /path/to/mariadb/data/on/host:/var/lib/mysql # I want to manage volumes manually. | |
php: | |
image: wodby/drupal-php:$PHP_TAG | |
container_name: "${PROJECT_NAME}_php" | |
environment: | |
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025 | |
DB_HOST: $DB_HOST | |
DB_USER: $DB_USER | |
DB_PASSWORD: $DB_PASSWORD | |
DB_NAME: $DB_NAME | |
DB_DRIVER: $DB_DRIVER | |
## Read instructions at https://wodby.com/stacks/drupal/docs/local/xdebug/ | |
# PHP_XDEBUG: 1 | |
# PHP_XDEBUG_DEFAULT_ENABLE: 1 | |
# PHP_XDEBUG_REMOTE_CONNECT_BACK: 0 | |
# PHP_IDE_CONFIG: serverName=my-ide | |
# PHP_XDEBUG_REMOTE_HOST: 172.17.0.1 # Linux | |
# PHP_XDEBUG_REMOTE_HOST: 10.254.254.254 # macOS | |
# PHP_XDEBUG_REMOTE_HOST: 10.0.75.1 # Windows | |
volumes: | |
- type: bind | |
source: "${PROJECT_PATH}" | |
target: /var/www/html | |
bind: | |
propagation: shared | |
## For macOS users (https://wodby.com/stacks/drupal/docs/local/docker-for-mac/) | |
# - "${PROJECT_PATH}:/var/www/html":cached # User-guided caching | |
# - docker-sync:/var/www/html # Docker-sync | |
## For Xdebug profiler files | |
# - files:/mnt/files | |
nginx: | |
image: wodby/drupal-nginx:$NGINX_TAG | |
container_name: "${PROJECT_NAME}_nginx" | |
depends_on: | |
- php | |
environment: | |
NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: "off" | |
NGINX_ERROR_LOG_LEVEL: debug | |
NGINX_BACKEND_HOST: php | |
NGINX_SERVER_ROOT: /var/www/html/web | |
# NGINX_DRUPAL_FILE_PROXY_URL: http://example.com | |
volumes: | |
- type: bind | |
source: "${PROJECT_PATH}" | |
target: /var/www/html | |
bind: | |
propagation: shared | |
# For macOS users (https://wodby.com/stacks/drupal/docs/local/docker-for-mac/) | |
# - "${PROJECT_PATH}:/var/www/html":cached # User-guided caching | |
# - docker-sync:/var/www/html # Docker-sync | |
labels: | |
- 'traefik.backend=nginx' | |
- 'traefik.port=80' | |
- 'traefik.frontend.rule=Host:${PROJECT_BASE_URL}' | |
mailhog: | |
image: mailhog/mailhog | |
container_name: "${PROJECT_NAME}_mailhog" | |
labels: | |
- 'traefik.backend=mailhog' | |
- 'traefik.port=8025' | |
- 'traefik.frontend.rule=Host:mailhog.${PROJECT_BASE_URL}' | |
# postgres: | |
# image: wodby/postgres:$POSTGRES_TAG | |
# container_name: "${PROJECT_NAME}_postgres" | |
# stop_grace_period: 30s | |
# environment: | |
# POSTGRES_PASSWORD: $DB_PASSWORD | |
# POSTGRES_DB: $DB_NAME | |
# POSTGRES_USER: $DB_USER | |
# volumes: | |
# - ./postgres-init:/docker-entrypoint-initdb.d # Place init file(s) here. | |
# - /path/to/postgres/data/on/host:/var/lib/postgresql/data # I want to manage volumes manually. | |
# apache: | |
# image: wodby/php-apache:$APACHE_TAG | |
# container_name: "${PROJECT_NAME}_apache" | |
# depends_on: | |
# - php | |
# environment: | |
# APACHE_LOG_LEVEL: debug | |
# APACHE_BACKEND_HOST: php | |
# APACHE_SERVER_ROOT: /var/www/html/web | |
# volumes: | |
# - "${PROJECT_PATH}:/var/www/html" | |
## For macOS users (https://wodby.com/stacks/drupal/docs/local/docker-for-mac/) | |
## - "${PROJECT_PATH}:/var/www/html":cached # User-guided caching | |
## - docker-sync:/var/www/html # Docker-sync | |
# labels: | |
# - 'traefik.backend=apache' | |
# - 'traefik.port=80' | |
# - 'traefik.frontend.rule=Host:${PROJECT_BASE_URL}' | |
# varnish: | |
# image: wodby/drupal-varnish:$VARNISH_TAG | |
# container_name: "${PROJECT_NAME}_varnish" | |
# depends_on: | |
# - nginx | |
# environment: | |
# VARNISH_SECRET: secret | |
# VARNISH_BACKEND_HOST: nginx | |
# VARNISH_BACKEND_PORT: 80 | |
# labels: | |
# - 'traefik.backend=varnish' | |
# - 'traefik.port=6081' | |
# - 'traefik.frontend.rule=Host:varnish.${PROJECT_BASE_URL}' | |
# redis: | |
# container_name: "${PROJECT_NAME}_redis" | |
# image: wodby/redis:$REDIS_TAG | |
# adminer: | |
# container_name: "${PROJECT_NAME}_adminer" | |
# image: wodby/adminer:$ADMINER_TAG | |
# environment: | |
# ADMINER_SALT: adminer-salt | |
# labels: | |
# - 'traefik.backend=adminer' | |
# - 'traefik.port=9000' | |
# - 'traefik.frontend.rule=Host:adminer.${PROJECT_BASE_URL}' | |
# pma: | |
# image: phpmyadmin/phpmyadmin | |
# container_name: "${PROJECT_NAME}_pma" | |
# environment: | |
# PMA_HOST: $DB_HOST | |
# PMA_USER: $DB_USER | |
# PMA_PASSWORD: $DB_PASSWORD | |
# PHP_UPLOAD_MAX_FILESIZE: 1G | |
# PHP_MAX_INPUT_VARS: 1G | |
# labels: | |
# - 'traefik.backend=pma' | |
# - 'traefik.port=80' | |
# - 'traefik.frontend.rule=Host:pma.${PROJECT_BASE_URL}' | |
# solr: | |
# image: wodby/drupal-solr:$SOLR_TAG | |
# container_name: "${PROJECT_NAME}_solr" | |
# environment: | |
# SOLR_HEAP: 1024m | |
# labels: | |
# - 'traefik.backend=solr' | |
# - 'traefik.port=8983' | |
# - 'traefik.frontend.rule=Host:solr.${PROJECT_BASE_URL}' | |
# nodejs: | |
# image: wodby/drupal-node:$DRUPAL_NODE_TAG | |
# container_name: "${PROJECT_NAME}_drupal_nodejs" | |
# environment: | |
# NODE_SERVICE_KEY: node-service-key | |
# labels: | |
# - 'traefik.backend=nodejs' | |
# - 'traefik.port=8080' | |
# - 'traefik.frontend.rule=Host:nodejs.${PROJECT_BASE_URL}' | |
# volumes: | |
# - ./path/to/your/single-page-app:/app | |
# command: sh -c 'npm install && npm run start' | |
# memcached: | |
# container_name: "${PROJECT_NAME}_memcached" | |
# image: wodby/memcached:$MEMCACHED_TAG | |
# rsyslog: | |
# container_name: "${PROJECT_NAME}_rsyslog" | |
# image: wodby/rsyslog:$RSYSLOG_TAG | |
# athenapdf: | |
# image: arachnysdocker/athenapdf-service:$ATHENAPDF_TAG | |
# container_name: "${PROJECT_NAME}_athenapdf" | |
# environment: | |
# WEAVER_AUTH_KEY: weaver-auth-key | |
# WEAVER_ATHENA_CMD: "athenapdf -S" | |
# WEAVER_MAX_WORKERS: 10 | |
# WEAVER_MAX_CONVERSION_QUEUE: 50 | |
# WEAVER_WORKER_TIMEOUT: 90 | |
# WEAVER_CONVERSION_FALLBACK: "false" | |
# node: | |
# image: node:alpine | |
# container_name: "${PROJECT_NAME}_node" | |
# working_dir: /app | |
# labels: | |
# - 'traefik.backend=node' | |
# - 'traefik.port=3000' | |
# - 'traefik.frontend.rule=Host:front.${PROJECT_BASE_URL}' | |
# expose: | |
# - "3000" | |
# volumes: | |
# - ./path/to/your/single-page-app:/app | |
# command: sh -c 'npm install && npm run start' | |
# blackfire: | |
# image: blackfire/blackfire | |
# container_name: "${PROJECT_NAME}_blackfire" | |
# environment: | |
# BLACKFIRE_SERVER_ID: XXXXX | |
# BLACKFIRE_SERVER_TOKEN: YYYYY | |
# webgrind: | |
# image: wodby/webgrind:$WEBGRIND_TAG | |
# container_name: "${PROJECT_NAME}_webgrind" | |
# environment: | |
# WEBGRIND_PROFILER_DIR: /mnt/files/xdebug/profiler | |
# labels: | |
# - 'traefik.backend=webgrind' | |
# - 'traefik.port=8080' | |
# - 'traefik.frontend.rule=Host:webgrind.${PROJECT_BASE_URL}' | |
# volumes: | |
# - files:/mnt/files | |
portainer: | |
image: portainer/portainer | |
container_name: "${PROJECT_NAME}_portainer" | |
command: --no-auth -H unix:///var/run/docker.sock | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
labels: | |
- 'traefik.backend=portainer' | |
- 'traefik.port=9000' | |
- 'traefik.frontend.rule=Host:portainer.${PROJECT_BASE_URL}' | |
traefik: | |
image: traefik | |
container_name: "${PROJECT_NAME}_traefik" | |
command: -c /dev/null --web --docker --logLevel=INFO | |
ports: | |
- '8000:80' | |
# - '8080:8080' # Dashboard | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
#volumes: | |
# source_code: | |
# external: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment