Tag: Caddy

  • Fixing Loopback Request Issue in WordPress in Docker

    If Site Health shows “Your site could not complete a loopback request” (or The REST API encountered an error) when running WordPress in Docker behind a reverse proxy (e.g., Caddy), the culprit is often that extra_hosts entry pointing to a container IP that changes on restart. Which is always as a solution to solve the loopback issue.

    The fix (use a Docker network alias)

    Let Docker’s built-in DNS keep things in sync by giving your proxy container a network alias that matches your site’s domain. Then all other containers resolve the alias to the current IP automatically. Would be a better solution than specifying the internal IP for PHP container:

    services:
      caddy:
        # ...your existing caddy config...
        networks:
          default:
            aliases:
              - example.com

    Now remove any extra_hosts lines you previously added to other services (like php).

    Apply & verify

    # Recreate containers
    docker compose up -d
    
    # From the php container, confirm the alias resolves
    docker compose exec php getent hosts example.com
    
    # (Optional) Hit wp-cron directly
    docker compose exec php curl -I https://example.com/wp-cron.php?doing_wp_cron=1

    Return to Tools → Site Health and re-check: loopback should pass, and scheduled tasks will run normally.