docker-compose.yml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. # $Id: docker-compose.yml,v 1.5 2022/06/05 09:29:36 springm Exp springm $
  2. # $Revision: 1.5 $
  3. # $Date: 2022/06/05 09:29:36 $
  4. # $Log: docker-compose.yml,v $
  5. # Revision 1.5 2022/06/05 09:29:36 springm
  6. # Summary: DISABLE_WP_CRON eingefügt
  7. #
  8. #
  9. # Revision 1.4 2022/06/05 06:26:37 springm
  10. # Summary: define COOKIE_DOMAIN auf $$_SERVER... hinzugefügt. Behebt
  11. # Cookie-Fehlermeldung beim Einloggen
  12. #
  13. # Revision 1.3 2022/06/05 05:44:06 springm
  14. # Summary: ADMIN_COOKIE_PATH auskommentiert
  15. # Weitere Cookie-Variablen auskommentiert
  16. #
  17. # Revision 1.2 2022/06/05 05:29:29 springm
  18. # Summary: RCS-Header eingefügt
  19. #
  20. #
  21. # from https://www.ddmboss.com/2022/01/20/wordpress-docker-development-set-up-with-traefik-redis-and-nginx/
  22. version: '3.8'
  23. services:
  24. nginx:
  25. image: nginx:alpine
  26. container_name: wp-nginx
  27. restart: always
  28. depends_on:
  29. - wordpress
  30. expose:
  31. - 80
  32. - 443
  33. volumes:
  34. - ./nginx/conf:/etc/nginx/conf.d
  35. - ./nginx/logs:/var/log/nginx
  36. - ./wordpress:/var/www/html
  37. networks:
  38. - wordpress
  39. - proxy
  40. labels:
  41. - traefik.enable=true
  42. - "traefik.docker.network=proxy"
  43. - traefik.http.routers.wordpress.rule=Host(`${WP_URL}`, `${WP_WWW_URL}`)
  44. #- "traefik.http.routers.wordpress.rule=Host(`${WP_URL}`) || HostRegexp(`{subdomain:[a-z0-9]+}.${WP_DOMAIN}`)"
  45. - traefik.http.routers.wordpress.entrypoints=web
  46. - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
  47. - traefik.http.routers.wordpress.middlewares=redirect-to-https@docker
  48. - traefik.http.routers.wordpress-secure.rule=Host(`${WP_URL}`, `${WP_WWW_URL}`)
  49. #- "traefik.http.routers.wordpress-secure.rule=Host(`${WP_URL}`) || HostRegexp(`{subdomain:[a-z0-9]+}.${WP_DOMAIN}`)"
  50. - traefik.http.routers.wordpress-secure.entrypoints=websecure
  51. - traefik.http.routers.wordpress-secure.tls.certresolver=cloudflare
  52. wordpress:
  53. image: wordpress:php8.0-fpm-alpine
  54. restart: always
  55. container_name: wp-wordpress
  56. depends_on:
  57. - mariadb
  58. - redis
  59. expose:
  60. - 9000
  61. environment:
  62. WORDPRESS_DB_HOST: mariadb
  63. WORDPRESS_DB_NAME: ${WP_DB_NAME}
  64. WORDPRESS_DB_USER: ${WP_DB_USER}
  65. WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD}
  66. WORDPRESS_TABLE_PREFIX: ${WP_DB_PREFIX}
  67. WORDPRESS_CONFIG_EXTRA:
  68. define( 'WP_REDIS_HOST', 'redis' );
  69. define( 'WP_REDIS_PORT', 6379 );
  70. define( 'COMPRESS_CSS', true );
  71. define( 'COMPRESS_SCRIPTS', true );
  72. define( 'CONCATENATE_SCRIPTS', true );
  73. /* define( 'ENFORCE_GZIP', true ); */
  74. define( 'ENFORCE_GZIP', false );
  75. define( 'AUTOSAVE_INTERVAL', 120 );
  76. define( 'WP_POST_REVISIONS', 10);
  77. define( 'MEDIA_TRASH', true );
  78. define( 'EMPTY_TRASH_DAYS', 30 );
  79. define( 'IMAGE_EDIT_OVERWRITE', true );
  80. define( 'DISALLOW_FILE_EDIT', true );
  81. define( 'MULTISITE', true );
  82. define( 'SUBDOMAIN_INSTALL', true );
  83. define( 'DOMAIN_CURRENT_SITE', 'wordpress.markus-spring.de' );
  84. define( 'PATH_CURRENT_SITE', '/' );
  85. define( 'SITE_ID_CURRENT_SITE', 1 );
  86. define( 'BLOG_ID_CURRENT_SITE', 1 );
  87. /* define('ADMIN_COOKIE_PATH', '/'); */
  88. /* define('COOKIE_DOMAIN', ''); */
  89. /* define('COOKIEPATH', ''); */
  90. /* define('SITECOOKIEPATH', ''); */
  91. /* define( 'WP_DEBUG_LOG', true );
  92. define( 'WP_DEBUG_DISPLAY', false );
  93. define( 'SAVEQUERIES', true ); */
  94. /* https://wp-staging.com/how-to-fix-the-error-cookies-are-blocked-or-not-supported-by-your-browser/ */
  95. define('COOKIE_DOMAIN', $$_SERVER['HTTP_HOST'] );
  96. /* define( 'SUNRISE', 'on' ); */
  97. define('DISABLE_WP_CRON', true);
  98. volumes:
  99. - ./wordpress:/var/www/html
  100. - ./wordpress.ini:/usr/local/etc/php/conf.d/wordpress.ini
  101. networks:
  102. - wordpress
  103. - proxy
  104. mariadb:
  105. image: mariadb:latest
  106. restart: always
  107. container_name: wp-mariadb
  108. expose:
  109. - 3306
  110. environment:
  111. MYSQL_DATABASE: ${WP_DB_NAME}
  112. MYSQL_USER: ${WP_DB_USER}
  113. MYSQL_PASSWORD: ${WP_DB_PASSWORD}
  114. MYSQL_RANDOM_ROOT_PASSWORD: '1'
  115. volumes:
  116. - mariadb:/var/lib/mysql
  117. networks:
  118. - wordpress
  119. redis:
  120. image: redis:6.2.7
  121. restart: unless-stopped
  122. container_name: wp-redis
  123. expose:
  124. - 6379
  125. command:
  126. - redis-server
  127. - --loglevel warning
  128. - --maxmemory 512mb
  129. - --maxmemory-policy allkeys-lru
  130. - --save 60 1
  131. volumes:
  132. - redis:/var/lib/redis
  133. - redis:/data
  134. #- ./redis.conf:/usr/local/etc/redis/redis.conf
  135. networks:
  136. - wordpress
  137. phpmyadmin:
  138. image: phpmyadmin/phpmyadmin
  139. container_name: phpmyadmin
  140. ports:
  141. - "${LOCAL_PORT_DB_GUI}:80"
  142. restart: on-failure:5
  143. # depends_on:
  144. # - database
  145. environment:
  146. PMA_HOST: "${PMA_HOST}"
  147. # PMA_ABSOLUTE_URI: "phpmyadmin.markus-spring.de"
  148. # PMA_USER: "${PMA_USER}"
  149. # PMA_PASSWORD: "${PMA_PASSWORD}"
  150. labels:
  151. - "traefik.enable=true"
  152. - "traefik.docker.network=proxy"
  153. - "traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.markus-spring.de`)" #edit domain for host
  154. - "traefik.http.routers.phpmyadmin.priority=99"
  155. - "traefik.http.routers.phpmyadmin.entrypoints=websecure"
  156. - "traefik.http.routers.phpmyadmin.tls=true"
  157. - "traefik.http.routers.phpmyadmin.tls.certresolver=cloudflare"
  158. - "traefik.http.services.phpmyadmin.loadBalancer.server.port=80"
  159. networks:
  160. - proxy
  161. - wordpress
  162. volumes:
  163. redis:
  164. mariadb:
  165. networks:
  166. proxy:
  167. external: true
  168. wordpress:
  169. internal: true
  170. #
  171. # docker-compose.yml ends here