Created
March 15, 2021 09:46
-
-
Save alexey-kuznetsov/0feeb1bf81e4d9fda170616e59fe249a to your computer and use it in GitHub Desktop.
docker-compose.yml for d4d
This file contains hidden or 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: "3.7" | |
| 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. | |
| - ./docker-runtime/mariadb:/var/lib/mysql:cached # Use bind mount | |
| php: | |
| image: wodby/drupal-php:$PHP_TAG | |
| container_name: "${PROJECT_NAME}_php" | |
| environment: | |
| PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025 | |
| # PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S opensmtpd:25 | |
| # DB_HOST: $DB_HOST | |
| # DB_PORT: $DB_PORT | |
| # DB_USER: $DB_USER | |
| # DB_PASSWORD: $DB_PASSWORD | |
| # DB_NAME: $DB_NAME | |
| # DB_DRIVER: $DB_DRIVER | |
| # PHP_FPM_USER: wodby | |
| # PHP_FPM_GROUP: wodby | |
| # COLUMNS: 80 # Set 80 columns for docker exec -it. | |
| # # Read instructions at https://wodby.com/docs/stacks/php/local/#xdebug | |
| # PHP_XDEBUG: 1 | |
| # PHP_XDEBUG_DEFAULT_ENABLE: 1 | |
| # PHP_XDEBUG_REMOTE_CONNECT_BACK: 0 | |
| # PHP_IDE_CONFIG: serverName=my-ide | |
| # PHP_XDEBUG_IDEKEY: "my-ide" | |
| # PHP_XDEBUG_REMOTE_HOST: host.docker.internal # Docker 18.03+ Mac/Win | |
| # PHP_XDEBUG_REMOTE_HOST: 172.17.0.1 # Linux | |
| # PHP_XDEBUG_REMOTE_HOST: 10.254.254.254 # macOS, Docker < 18.03 | |
| # PHP_XDEBUG_REMOTE_HOST: 10.0.75.1 # Windows, Docker < 18.03 | |
| # PHP_XDEBUG_REMOTE_LOG: /tmp/php-xdebug.log | |
| # # PHPUnit Drupal testing configurations | |
| # SIMPLETEST_BASE_URL: "http://nginx" | |
| # SIMPLETEST_DB: "${DB_DRIVER}://${DB_USER}:${DB_PASSWORD}@${DB_HOST}/${DB_NAME}#tests_" | |
| # MINK_DRIVER_ARGS_WEBDRIVER: '["chrome", {"browserName":"chrome","goog:chromeOptions":{"args":["--disable-gpu","--headless"]}}, "http://chrome:9515"]' | |
| volumes: | |
| - ./drupal:/var/www/html:cached | |
| ## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac | |
| # - mutagen:/var/www/html | |
| ## For XHProf and Xdebug profiler traces | |
| # - files:/mnt/files | |
| crond: | |
| image: wodby/drupal-php:$PHP_TAG | |
| container_name: "${PROJECT_NAME}_crond" | |
| environment: | |
| CRONTAB: "0 * * * * drush -r /var/www/html/web cron" | |
| command: sudo -E LD_PRELOAD=/usr/lib/preloadable_libiconv.so crond -f -d 0 | |
| volumes: | |
| - ./:/var/www/html:cached | |
| nginx: | |
| image: wodby/nginx:$NGINX_TAG | |
| container_name: "${PROJECT_NAME}_nginx" | |
| depends_on: | |
| - php | |
| environment: | |
| NGINX_STATIC_OPEN_FILE_CACHE: "off" | |
| NGINX_ERROR_LOG_LEVEL: debug | |
| NGINX_BACKEND_HOST: php | |
| NGINX_SERVER_ROOT: /var/www/html/web | |
| NGINX_VHOST_PRESET: $NGINX_VHOST_PRESET | |
| # NGINX_DRUPAL_FILE_PROXY_URL: http://example.com | |
| volumes: | |
| - ./drupal:/var/www/html:cached | |
| ## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac | |
| # - mutagen:/var/www/html | |
| labels: | |
| - "traefik.http.routers.${PROJECT_NAME}_nginx.rule=Host(`${PROJECT_BASE_URL}`)" | |
| mailhog: | |
| image: mailhog/mailhog | |
| container_name: "${PROJECT_NAME}_mailhog" | |
| labels: | |
| - "traefik.http.services.${PROJECT_NAME}_mailhog.loadbalancer.server.port=8025" | |
| - "traefik.http.routers.${PROJECT_NAME}_mailhog.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 # Use bind mount | |
| # apache: | |
| # image: wodby/apache:$APACHE_TAG | |
| # container_name: "${PROJECT_NAME}_apache" | |
| # depends_on: | |
| # - php | |
| # environment: | |
| # APACHE_LOG_LEVEL: debug | |
| # APACHE_BACKEND_HOST: php | |
| # APACHE_VHOST_PRESET: php | |
| # APACHE_DOCUMENT_ROOT: /var/www/html/web | |
| # volumes: | |
| # - ./:/var/www/html:cached | |
| ## Alternative for macOS users: Mutagen https://wodby.com/docs/stacks/drupal/local#docker-for-mac | |
| # - mutagen:/var/www/html | |
| # labels: | |
| # - "traefik.http.routers.${PROJECT_NAME}_apache.rule=Host(`${PROJECT_BASE_URL}`)" | |
| # varnish: | |
| # image: wodby/varnish:$VARNISH_TAG | |
| # container_name: "${PROJECT_NAME}_varnish" | |
| # depends_on: | |
| # - nginx | |
| # environment: | |
| # VARNISH_SECRET: secret | |
| # VARNISH_BACKEND_HOST: nginx | |
| # VARNISH_BACKEND_PORT: 80 | |
| # VARNISH_CONFIG_PRESET: drupal | |
| # VARNISH_ALLOW_UNRESTRICTED_PURGE: 1 | |
| # labels: | |
| # - "traefik.http.services.${PROJECT_NAME}_varnish.loadbalancer.server.port=6081" | |
| # - "traefik.http.routers.${PROJECT_NAME}_varnish.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: | |
| # # For PostgreSQL: | |
| # # ADMINER_DEFAULT_DB_DRIVER: pgsql | |
| # ADMINER_DEFAULT_DB_HOST: $DB_HOST | |
| # ADMINER_DEFAULT_DB_NAME: $DB_NAME | |
| # labels: | |
| # - "traefik.http.routers.${PROJECT_NAME}_adminer.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 | |
| UPLOAD_LIMIT: 1G | |
| labels: | |
| - "traefik.http.routers.${PROJECT_NAME}_pma.rule=Host(`pma.${PROJECT_BASE_URL}`)" | |
| # solr: | |
| # image: wodby/solr:$SOLR_TAG | |
| # container_name: "${PROJECT_NAME}_solr" | |
| # environment: | |
| # SOLR_DEFAULT_CONFIG_SET: $SOLR_CONFIG_SET | |
| # SOLR_HEAP: 1024m | |
| # labels: | |
| # - "traefik.http.services.${PROJECT_NAME}_solr.loadbalancer.server.port=8983" | |
| # - "traefik.http.routers.${PROJECT_NAME}_solr.rule=Host(`solr.${PROJECT_BASE_URL}`)" | |
| # drupal-node: | |
| # image: wodby/drupal-node:$DRUPAL_NODE_TAG | |
| # container_name: "${PROJECT_NAME}_drupal_nodejs" | |
| # labels: | |
| # - "traefik.http.routers.${PROJECT_NAME}_drupal_node.rule=Host(`drupal_node.${PROJECT_BASE_URL}`)" | |
| # environment: | |
| # NODE_SERVICE_KEY: node-service-key | |
| # 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: wodby/node:$NODE_TAG | |
| # container_name: "${PROJECT_NAME}_node" | |
| # working_dir: /var/www/html/path/to/theme/to/build | |
| # labels: | |
| # - "traefik.http.services.${PROJECT_NAME}_node.loadbalancer.server.port=3000" | |
| # - "traefik.http.routers.${PROJECT_NAME}_node.rule=Host(`node.${PROJECT_BASE_URL}`)" | |
| # expose: | |
| # - "3000" | |
| # volumes: | |
| # - ./:/var/www/html | |
| # command: sh -c 'yarn install && yarn 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.http.routers.${PROJECT_NAME}_webgrind.rule=Host(`webgrind.${PROJECT_BASE_URL}`)" | |
| # volumes: | |
| # - files:/mnt/files | |
| # elasticsearch: | |
| # image: wodby/elasticsearch:$ELASTICSEARCH_TAG | |
| # container_name: "${PROJECT_NAME}_elasticsearch" | |
| # environment: | |
| # ES_JAVA_OPTS: "-Xms500m -Xmx500m" | |
| # ulimits: | |
| # memlock: | |
| # soft: -1 | |
| # hard: -1 | |
| # kibana: | |
| # image: wodby/kibana:$KIBANA_TAG | |
| # container_name: "${PROJECT_NAME}_kibana" | |
| # depends_on: | |
| # - elasticsearch | |
| # labels: | |
| # - "traefik.http.services.${PROJECT_NAME}_kibana.loadbalancer.server.port=5601" | |
| # - "traefik.http.routers.${PROJECT_NAME}_kibana.rule=Host(`kibana.${PROJECT_BASE_URL}`)" | |
| # opensmtpd: | |
| # container_name: "${PROJECT_NAME}_opensmtpd" | |
| # image: wodby/opensmtpd:$OPENSMTPD_TAG | |
| # xhprof: | |
| # image: wodby/xhprof:$XHPROF_TAG | |
| # container_name: "${PROJECT_NAME}_xhprof" | |
| # restart: always | |
| # volumes: | |
| # - files:/mnt/files | |
| # labels: | |
| # - "traefik.http.routers.${PROJECT_NAME}_xhprof.rule=Host(`xhprof.${PROJECT_BASE_URL}`)" | |
| # chrome: | |
| # image: selenium/standalone-chrome:$SELENIUM_CHROME_TAG | |
| # container_name: "${PROJECT_NAME}_chrome" | |
| # volumes: | |
| # - /dev/shm:/dev/shm | |
| # entrypoint: | |
| # - chromedriver | |
| # - "--no-sandbox" | |
| # - "--disable-dev-shm-usage" | |
| # - "--log-path=/tmp/chromedriver.log" | |
| # - "--verbose" | |
| # - "--whitelisted-ips=" | |
| # 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.http.routers.${PROJECT_NAME}_portainer.rule=Host(`portainer.${PROJECT_BASE_URL}`)" | |
| traefik: | |
| image: traefik:v2.0 | |
| container_name: "${PROJECT_NAME}_traefik" | |
| command: --api.insecure=true --providers.docker | |
| ports: | |
| - '80:80' | |
| # - '8080:8080' # Dashboard | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| # mutagen: | |
| # build: | |
| # context: . | |
| # dockerfile: mutagen/Dockerfile | |
| # init: true | |
| # container_name: "mutagen" | |
| # volumes: | |
| # - mutagen:/var/www/html | |
| #volumes: | |
| ## For macOS users (Mutagen) | |
| # mutagen: | |
| ## For Xdebug profiler | |
| # files: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment