secrets: wordpress_db_password: file: ./wordpress/wordpress_db_password wordpress_db_root_password: file: ./wordpress/wordpress_db_root_password services: wordpress_caddy: image: docker.io/caddy:2.11.4-alpine volumes: - ./wordpress/Caddyfile-internal:/etc/caddy/Caddyfile:ro - /nassella/wordpress/caddy-config:/config - /nassella/wordpress/caddy-data:/data - /nassella/wordpress/var-www-html:/var/www/html:ro networks: - lb - wordpress_instance restart: unless-stopped depends_on: - wordpress wordpress: image: wordpress:php8.4-fpm restart: unless-stopped environment: WORDPRESS_DB_HOST: wordpress_db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD_FILE: /run/secrets/wordpress_db_password WORDPRESS_DB_NAME: wordpress depends_on: wordpress_db: condition: service_healthy volumes: - /nassella/wordpress/var-www-html:/var/www/html - ./wordpress/custom.ini:/usr/local/etc/php/conf.d/custom.ini:ro networks: - wordpress_db - wordpress_instance - wordpress_outbound - lb secrets: - wordpress_db_password wordpress_db: image: mysql:9.7 restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD_FILE: /run/secrets/wordpress_db_password MYSQL_ROOT_PASSWORD_FILE: /run/secrets/wordpress_db_root_password volumes: - /nassella/wordpress/var-lib-mysql:/var/lib/mysql networks: - wordpress_db healthcheck: test: [ "CMD-SHELL", "MYSQL_PWD=$$(cat /run/secrets/wordpress_mysql_root_password) mysqladmin ping -h 127.0.0.1 -uroot --silent" ] interval: 1s start_period: 30s start_interval: 10s retries: 120 secrets: - wordpress_db_password - wordpress_db_root_password command: - --performance-schema=OFF - --innodb-buffer-pool-size=64M - --max-connections=10 - --table-open-cache=128 - --table-definition-cache=128 - --thread-cache-size=2 - --innodb-log-buffer-size=8M # wordpress_init: # image: wordpress:cli-php8.4 # restart: "no" # depends_on: # - wordpress_db # - wordpress # environment: # WORDPRESS_DB_HOST: db # WORDPRESS_DB_USER: exampleuser # WORDPRESS_DB_PASSWORD: examplepass # WORDPRESS_DB_NAME: exampledb # WP_URL: "https://wp.nassella.org" # WP_TITLE: "Nassella" # WP_ADMIN_USER: "admin" # WP_ADMIN_PASSWORD: "admin" # WP_ADMIN_EMAIL: "admin@example.org" # OIDC_CLIENT_ID: wordpress # OIDC_CLIENT_SECRET: "secret" # OIDC_PROVIDER: "https://auth.nassella.org" # volumes: # - /nassella/wordpress/var-www-html:/var/www/html # - ./init:/scripts # entrypoint: # - /bin/bash # - /scripts/init.sh networks: lb: wordpress_instance: driver: bridge internal: true wordpress_outbound: driver: bridge wordpress_db: driver: bridge internal: true