fix: das externe Netz war fest verdrahtet und existierte nicht

"network proxy declared as external, but could not be found".

Die Hauptdatei verlangte ein externes Netz namens proxy, das es auf diesem
Server gar nicht gibt — und die Ergaenzung fuer host.docker.internal half
nicht, weil die Basis es trotzdem forderte. Das war die falsche Reihenfolge:
der Weg nach aussen ist gerade das, was sich je Aufbau unterscheidet, und
gehoert damit nicht in die Basis.

Jetzt ist docker-compose.yml neutral — von aussen nicht erreichbar, und das
ausdruecklich. Dazu waehlt man eine von zwei Ergaenzungen:

  docker-compose.proxynet.yml    Proxy haengt im selben Netz (http://minio:9000)
  docker-compose.hostports.yml   Proxy geht ueber den Host

Die Netzliste dieses Servers zeigt kein "proxy", aber ein "web" — ein
Bridge-Netz ohne Stack, also die uebliche Konvention fuer einen Reverse Proxy.
PROXY_NETWORK steht deshalb auf "web", mit dem Hinweis, es nachzusehen statt zu
glauben.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 14:31:05 +02:00
co-authored by Claude Opus 5
parent 44822e2831
commit 9c690c46b9
4 changed files with 83 additions and 26 deletions
+13 -12
View File
@@ -12,10 +12,17 @@
# das Ablegen von Bildern braucht es sie nicht, und ClickHouse ist eine
# schwere Abhaengigkeit. Nachruesten geht spaeter.
#
# Offene Ports. Nur der Reverse Proxy spricht mit der App; Datenbank und
# MinIO bleiben im internen Netz. Zum Ausprobieren gibt es
# docker-compose.local.yml — die macht es andersherum, und dort ist es
# richtig.
# Ein Weg nach aussen. Diese Datei allein ist von aussen NICHT erreichbar —
# das ist Absicht, denn wie der Reverse Proxy die Dienste findet,
# unterscheidet sich je Aufbau. Waehle eine Ergaenzung:
#
# docker-compose.hostports.yml Proxy erreicht die Dienste ueber den Host
# (http://host.docker.internal:9000)
# docker-compose.proxynet.yml Proxy haengt im selben Docker-Netz
# (http://minio:9000) — der sauberere Weg
#
# In Portainer beide Pfade angeben, durch Komma getrennt:
# docker-compose.yml,docker-compose.hostports.yml
services:
db:
@@ -47,7 +54,7 @@ services:
MINIO_SERVER_URL: ${PUBLIC_URL:?bitte setzen}
volumes:
- minio:/data
networks: [internal, proxy]
networks: [internal]
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 10s
@@ -99,17 +106,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?bitte setzen}
AWS_BUCKET: media
AWS_REGION: auto
networks: [internal, proxy]
# KEIN ports: — der Reverse Proxy erreicht die App ueber das Netz `proxy`.
# Wer hier 8080 aufmacht, hat die Oberflaeche ohne TLS im Internet.
networks: [internal]
networks:
internal:
driver: bridge
proxy:
# Das Netz, in dem der bestehende Reverse Proxy haengt.
name: ${PROXY_NETWORK:-proxy}
external: true
volumes:
db: