fix: Resolve PostgreSQL DNS failure by routing through Docker's embedded DNS

The appwrite container's `dns: 172.16.238.100` (CoreDNS) bypassed Docker's
embedded DNS, preventing resolution of service names like `postgresql`.
CoreDNS only handles custom test domains and forwards unknown queries to
Cloudflare, which can't resolve Docker service names.

Fix: Add 127.0.0.11 (Docker embedded DNS) as primary resolver and configure
CoreDNS to forward unknown queries to Docker DNS with Cloudflare as fallback.
Bind CoreDNS to its static IP to avoid port conflict with Docker's DNS proxy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jake Barnby
2026-02-13 04:02:31 +13:00
co-authored by Claude Opus 4.6
parent 61e69027a3
commit eaff193055
3 changed files with 20 additions and 2 deletions
+12
View File
@@ -303,8 +303,20 @@ jobs:
- name: Failure Logs
if: failure()
run: |
echo "=== Container Status ==="
docker compose ps
echo "=== Appwrite DNS Config ==="
docker compose exec -T appwrite cat /etc/resolv.conf || true
echo "=== Appwrite Server Logs ==="
docker compose logs appwrite
echo "=== Database Container Logs (${{ matrix.db_adapter }}) ==="
if [ "${{ matrix.db_adapter }}" = "MARIADB" ]; then
docker compose logs mariadb || true
elif [ "${{ matrix.db_adapter }}" = "MONGODB" ]; then
docker compose logs mongodb || true
elif [ "${{ matrix.db_adapter }}" = "POSTGRESQL" ]; then
docker compose logs postgresql || true
fi
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="