docker-compose.yml 5.0 KB

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