version: '3.7' # https://minhcung.me/how-to-start-wordpress-with-caddy-using-docker-compose-3d31bb9ef88b services: database: image: mariadb:latest container_name: database profiles: - database volumes: - database:/var/lib/mysql:rw restart: always env_file: - env/mariadb.env environment: MYSQL_DATABASE: blog_wp command: '--default-authentication-plugin=mysql_native_password' networks: - blog-network # Wordpress wordpress: depends_on: - database image: wordpress:6.2-fpm-alpine container_name: wordpress profiles: - wordpress restart: always env_file: - env/wordpress.env volumes: - ./php.ini:/usr/local/etc/php/conf.d/custom.ini:ro - wordpress:/var/www/html:rw networks: - blog-network # Webserver caddy: image: caddy:alpine container_name: webserver profiles: - webserver ports: - 80:80/tcp - 80:80/udp - 443:443/tcp - 443:443/udp volumes: - wordpress:/var/www/html:rw - caddy_data:/data:rw - caddy_config:/config:rw - ./caddy:/etc/caddy:ro networks: - blog-network # phpmyadmin: # image: phpmyadmin:5.2.0 # container_name: phpmyadmin # profiles: # - phpmyadmin # restart: always # env_file: # - env/phpmyadmin.env # ports: # - 8080:80 # depends_on: # - database # networks: # - blog-network # security_opt: # - no-new-privileges:true # - seccomp:unconfined # - apparmor:unconfined # cap_drop: # - ALL # cap_add: # - CHOWN networks: blog-network: driver: bridge name: blog-network volumes: database: name: database wordpress: name: wordpress caddy_data: name: caddy_data caddy_config: name: caddy_config