| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- # $Id: docker-compose.yml,v 1.6 2022/06/22 11:58:38 springm Exp springm $
- # $Revision: 1.6 $
- # $Date: 2022/06/22 11:58:38 $
- # $Log: docker-compose.yml,v $
- # Revision 1.6 2022/06/22 11:58:38 springm
- # Summary: Running version before integrating Matomo
- #
- # Revision 1.5 2022/06/05 09:29:36 springm
- # Summary: DISABLE_WP_CRON eingefügt
- #
- #
- # Revision 1.4 2022/06/05 06:26:37 springm
- # Summary: define COOKIE_DOMAIN auf $$_SERVER... hinzugefügt. Behebt
- # Cookie-Fehlermeldung beim Einloggen
- #
- # Revision 1.3 2022/06/05 05:44:06 springm
- # Summary: ADMIN_COOKIE_PATH auskommentiert
- # Weitere Cookie-Variablen auskommentiert
- #
- # Revision 1.2 2022/06/05 05:29:29 springm
- # Summary: RCS-Header eingefügt
- #
- #
- # from https://www.ddmboss.com/2022/01/20/wordpress-docker-development-set-up-with-traefik-redis-and-nginx/
- version: '3.8'
- services:
- nginx:
- image: nginx:alpine
- container_name: wp-matomo-nginx
- restart: always
- depends_on:
- - wordpress-fpm
- - matomo-fpm
- expose:
- - 80
- - 443
- volumes:
- - ./conf:/etc/nginx/conf.d
- - ./logs:/var/log/nginx
- - ./wordpress:/var/www/html
- - ./matomo:/var/www/matomo
- networks:
- - wordpress
- - proxy
- labels:
- - traefik.enable=true
- - "traefik.docker.network=proxy"
- - traefik.http.routers.wordpress.rule=Host(`${WP_URL}`, `${WP_WWW_URL}`)
- #- "traefik.http.routers.wordpress.rule=Host(`${WP_URL}`) || HostRegexp(`{subdomain:[a-z0-9]+}.${WP_DOMAIN}`)"
- - traefik.http.routers.wordpress.entrypoints=web
- - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- - traefik.http.routers.wordpress.middlewares=redirect-to-https@docker
- - traefik.http.routers.wordpress-secure.rule=Host(`${WP_URL}`, `${WP_WWW_URL}`)
- #- "traefik.http.routers.wordpress-secure.rule=Host(`${WP_URL}`) || HostRegexp(`{subdomain:[a-z0-9]+}.${WP_DOMAIN}`)"
- - traefik.http.routers.wordpress-secure.entrypoints=websecure
- - traefik.http.routers.wordpress-secure.tls.certresolver=cloudflare
- wp-fpm:
- image: wordpress:php8.0-fpm-alpine
- restart: always
- container_name: wp-fpm
- depends_on:
- - mariadb
- - redis
- expose:
- - 9000
- environment:
- WORDPRESS_DB_HOST: mariadb
- WORDPRESS_DB_NAME: ${WP_DB_NAME}
- WORDPRESS_DB_USER: ${WP_DB_USER}
- WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD}
- WORDPRESS_TABLE_PREFIX: ${WP_DB_PREFIX}
- WORDPRESS_CONFIG_EXTRA:
- define( 'WP_REDIS_HOST', 'redis' );
- define( 'WP_REDIS_PORT', 6379 );
- define( 'COMPRESS_CSS', true );
- define( 'COMPRESS_SCRIPTS', true );
- define( 'CONCATENATE_SCRIPTS', true );
- /* define( 'ENFORCE_GZIP', true ); */
- define( 'ENFORCE_GZIP', false );
- define( 'AUTOSAVE_INTERVAL', 120 );
- define( 'WP_POST_REVISIONS', 10);
- define( 'MEDIA_TRASH', true );
- define( 'EMPTY_TRASH_DAYS', 30 );
- define( 'IMAGE_EDIT_OVERWRITE', true );
- define( 'DISALLOW_FILE_EDIT', true );
- define( 'MULTISITE', true );
- define( 'SUBDOMAIN_INSTALL', true );
- define( 'DOMAIN_CURRENT_SITE', 'wordpress.markus-spring.de' );
- define( 'PATH_CURRENT_SITE', '/' );
- define( 'SITE_ID_CURRENT_SITE', 1 );
- define( 'BLOG_ID_CURRENT_SITE', 1 );
- /* define('ADMIN_COOKIE_PATH', '/'); */
- /* define('COOKIE_DOMAIN', ''); */
- /* define('COOKIEPATH', ''); */
- /* define('SITECOOKIEPATH', ''); */
- /* define( 'WP_DEBUG_LOG', true );
- define( 'WP_DEBUG_DISPLAY', false );
- define( 'SAVEQUERIES', true ); */
- /* https://wp-staging.com/how-to-fix-the-error-cookies-are-blocked-or-not-supported-by-your-browser/ */
- define('COOKIE_DOMAIN', $$_SERVER['HTTP_HOST'] );
- /* define( 'SUNRISE', 'on' ); */
- define('DISABLE_WP_CRON', true);
- volumes:
- - ./wordpress:/var/www/html
- - ./wordpress.ini:/usr/local/etc/php/conf.d/wordpress.ini
- networks:
- - wordpress
- - proxy
-
- matomo-fpm:
- image: matomo:fpm-alpine
- #image: wordpress:php8.0-fpm-alpine
- container_name: matomo-fpm
- restart: unless-stopped
- depends_on:
- - mariadb
- volumes:
- - ./matomo:/var/www/matomo
- environment:
- - MATOMO_DATABASE_HOST=mariadb
- - MATOMO_DATABASE_ADAPTER=mariadb
- - MATOMO_DATABASE_TABLES_PREFIX=${MATOMO_DATABASE_TABLES_PREFIX}
- - MATOMO_DATABASE_USERNAME=${MYSQL_USER}
- - MATOMO_DATABASE_PASSWORD=${MYSQL_PASSWORD}
- - MATOMO_DATABASE_DBNAME=${MYSQL_DATABASE}
- networks:
- - wordpress
- - proxy
- mariadb:
- image: mariadb:latest
- restart: always
- container_name: wp-mariadb
- expose:
- - 3306
- environment:
- MYSQL_DATABASE: ${WP_DB_NAME}
- MYSQL_USER: ${WP_DB_USER}
- MYSQL_PASSWORD: ${WP_DB_PASSWORD}
- # MYSQL_RANDOM_ROOT_PASSWORD: '1'
- volumes:
- - mariadb:/var/lib/mysql
- networks:
- - wordpress
- # for resetting the root password
- # https://gist.github.com/rordi/ab55c92848fd06884172ed22ae88d7df
- # entrypoint: mysqld_safe --skip-grant-tables --user=mysql
- redis:
- image: redis:6.2.7
- restart: unless-stopped
- container_name: wp-redis
- expose:
- - 6379
- command:
- - redis-server
- - --loglevel warning
- - --maxmemory 512mb
- - --maxmemory-policy allkeys-lru
- - --save 60 1
- volumes:
- - redis:/var/lib/redis
- - redis:/data
- #- ./redis.conf:/usr/local/etc/redis/redis.conf
- networks:
- - wordpress
- # phpmyadmin:
- # image: phpmyadmin/phpmyadmin
- # container_name: phpmyadmin
- # ports:
- # - "${LOCAL_PORT_DB_GUI}:80"
- # restart: on-failure:5
- # # depends_on:
- # # - database
- # environment:
- # PMA_HOST: "${PMA_HOST}"
- # # PMA_ABSOLUTE_URI: "phpmyadmin.markus-spring.de"
- # # PMA_USER: "${PMA_USER}"
- # # PMA_PASSWORD: "${PMA_PASSWORD}"
- # labels:
- # - "traefik.enable=true"
- # - "traefik.docker.network=proxy"
- # - "traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.markus-spring.de`)" #edit domain for host
- # - "traefik.http.routers.phpmyadmin.priority=99"
- # - "traefik.http.routers.phpmyadmin.entrypoints=websecure"
- # - "traefik.http.routers.phpmyadmin.tls=true"
- # - "traefik.http.routers.phpmyadmin.tls.certresolver=cloudflare"
- # - "traefik.http.services.phpmyadmin.loadBalancer.server.port=80"
- # networks:
- # - proxy
- # - wordpress
-
- volumes:
- redis:
- mariadb:
- networks:
- proxy:
- external: true
- wordpress:
- internal: true
- #
- # docker-compose.yml ends here
|