Wordpress with Caddy v2 on Docker

Not sure why I still can’t get Wordpress FPM to work.

Temporary URL

EXPIRED

Basing my Caddyfile on:

And Matt’s Wiki - Example: WordPress:

Current Caddyfile:

{
	debug
}

{$FORUM_TEST_1}, {$FORUM_TEST_2}, {$FORUM_TEST_3} {
    reverse_proxy unix//sock/nginx.http.sock
    tls {
        dns cloudflare {$CLOUDFLARE_API_TOKEN}
    }
}

{$SITE_1} {
    root * /var/www/{$WP_1}/
    # php_fastcgi unix//run/php/php7.4-fpm.sock
    php_fastcgi {$DOCKER_HOST_1}:9000 
    file_server
    # reverse_proxy {$DOCKER_HOST_1}:{$WP_PORT}
    tls {
        dns cloudflare {$CLOUDFLARE_API_TOKEN}
    }
}

{$SITE_2} {
    reverse_proxy {$DOCKER_HOST_2}:{$WP_PORT}
    tls {
        dns cloudflare {$CLOUDFLARE_API_TOKEN}
    }
}

The 3 Discourse forum tests at the top work. Site 2 works (Wordpress Apache). But Site 1 is a blank page.

Unlike the others, Site 1 doesn’t show anything in the terminal when I try to load the page. It’s running according to Docker:

wp1 | [24-Jul-2020 06:01:35] NOTICE: fpm is running, pid 1
wp1 | [24-Jul-2020 06:01:35] NOTICE: ready to handle connections

And it’s showing up with port 9000 after docker ps

CONTAINER ID        IMAGE                               COMMAND                  CREATED              STATUS              PORTS
da3b802c1ed8        wordpress:5.4.2-php7.4-fpm-alpine   "docker-entrypoint.s…"   About a minute ago   Up About a minute   9000/tcp
docker-compose.yml
version: '3.3'

services:
  caddy:
    env_file:
      - .env
    container_name: caddy
    build: ./caddy
    ports:
      - "80:80"
      - "443:443"
      - "80:80/udp"
      - "443:443/udp"
    volumes:
      - ${DISCOURSE_PATH}/shared/web-only:/sock
      - ${FARM_PATH}/caddy/Caddyfile:/etc/caddy/Caddyfile
      - ${FARM_PATH}/var/caddy:/root/.caddy
      - ${FARM_PATH}/caddy/data:/data
      - ${FARM_PATH}/caddy/config:/config
    restart: always

  wp1:
    image: $WP_ALPINE
    # build:
    #   context: .
    #   dockerfile: Dockerfile-alternate
    container_name: ${WP_1}-wp
    # networks:
    #   - $DEFAULT_NETWORK
    # ports:
    #   - "9000:9000"
    hostname: $SITE_1
    depends_on:
      - db1
    restart: always
    environment:
      WORDPRESS_DB_HOST: ${WP_1}-db
      WORDPRESS_DB_USER: $DB_USER
      WORDPRESS_DB_PASSWORD: $DB_PASSWORD
      WORDPRESS_DB_NAME: $DB_NAME
    volumes:
      - ${WWW_PATH}/${WP_1}:/var/www/html

  db1:
    image: $DB_IMAGE
    container_name: ${WP_1}-db
    # networks:
    #   - $DEFAULT_NETWORK
    restart: always
    environment:
      MYSQL_DATABASE: $DB_NAME
      MYSQL_USER: $DB_USER
      MYSQL_PASSWORD: $DB_PASSWORD
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - ${FARM_PATH}/mysql/${WP_1}:/var/lib/mysql
  wp2:
    image: $WP_PHP
    # build:
    #   context: .
    #   dockerfile: Dockerfile-alternate
    container_name: ${WP_2}-wp
    # networks:
    #   - $DEFAULT_NETWORK
    # ports:
    #   - "9000:9000"
    hostname: $SITE_2
    depends_on:
      - db1
    restart: always
    environment:
      WORDPRESS_DB_HOST: ${WP_2}-db
      WORDPRESS_DB_USER: $DB_USER
      WORDPRESS_DB_PASSWORD: $DB_PASSWORD
      WORDPRESS_DB_NAME: $DB_NAME
    volumes:
      - ${WWW_PATH}/${WP_2}:/var/www/html

  db2:
    image: $DB_IMAGE
    container_name: ${WP_2}-db
    # networks:
    #   - $DEFAULT_NETWORK
    restart: always
    environment:
      MYSQL_DATABASE: $DB_NAME
      MYSQL_USER: $DB_USER
      MYSQL_PASSWORD: $DB_PASSWORD
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - ${FARM_PATH}/mysql/${WP_2}:/var/lib/mysql

If I change the standard Wordpress image in docker-compose.yml and set it to reverse-proxy, Site 1 works again.