fix: BUCKET_DOMAIN ergaenzt, minio-init entfernt
Zwei Funde beim Lesen von pkg/storage/s3/s3.go und der .env.template des Projekts. BUCKET_DOMAIN fehlte. AWS_ENDPOINT ist nur der Weg, auf dem Lite die Dateien HINLEGT — http://minio:9000, Containername im internen Netz, und das ist richtig so. Die oeffentliche Adresse, die Lite nach dem Upload zurueckgibt, baut es aus BUCKET_DOMAIN. Die Variable steht nicht im README des Projekts, nur in dessen .env.template (BUCKET_DOMAIN=http://localhost:9000/lite-dev, also Endpunkt plus Bucket). Ohne sie waere jeder Upload scheinbar geglueckt und das Bild von aussen nicht abrufbar — ein Fehler, der erst im Handy auffaellt und dort nach einem CDN-Problem aussieht. minio-init faellt weg, und zwar nicht nur als Ballast: Lite legt den Bucket beim Start selbst an und setzt dabei die oeffentliche Leserichtlinie. Es ueberspringt beides, wenn der Bucket schon existiert ("already exists. skipping creation and policy application"). Mein Init-Container kam ihm zuvor und haette damit genau die Richtlinie verhindert, die er ersetzen sollte. Dass es trotzdem funktioniert haette — mc anonymous set download tut dasselbe — macht es nicht besser, sondern nur unauffaelliger. AWS_REGION folgt jetzt deren Vorlage (eu-west-1 statt auto). Fuer MinIO ist sie gleichgueltig, das SDK verlangt aber eine. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -161,6 +161,27 @@ docker volume rm fivemanager_db
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Zwei Adressen, nicht eine
|
||||||
|
|
||||||
|
Lite spricht MinIO unter zwei verschiedenen Namen an, und beide muessen
|
||||||
|
stimmen:
|
||||||
|
|
||||||
|
| Variable | Wert | Wofuer |
|
||||||
|
|---|---|---|
|
||||||
|
| `AWS_ENDPOINT` | `http://minio:9000` | Wie Lite die Dateien **hinlegt** — Containername im internen Netz |
|
||||||
|
| `BUCKET_DOMAIN` | `$PUBLIC_URL/media` | Woraus die **oeffentliche** Adresse gebaut wird, die Lite nach dem Upload zurueckgibt |
|
||||||
|
|
||||||
|
`BUCKET_DOMAIN` steht nicht im README des Projekts, nur in dessen
|
||||||
|
`.env.template`. Ohne sie kaemen Adressen zurueck, die nur innerhalb von
|
||||||
|
Docker gelten — der Upload saehe erfolgreich aus, und das Bild waere von
|
||||||
|
aussen nicht abrufbar.
|
||||||
|
|
||||||
|
Den Bucket legt Lite beim Start selbst an und setzt dabei die oeffentliche
|
||||||
|
Leserichtlinie (`pkg/storage/s3/s3.go`). Es ueberspringt beides, wenn der
|
||||||
|
Bucket schon existiert — deshalb legt dieser Stack ihn **nicht** vorher an.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Was hier bewusst fehlt
|
## Was hier bewusst fehlt
|
||||||
|
|
||||||
**ClickHouse und Jaeger.** Beide stehen in der Entwicklungs-Compose des
|
**ClickHouse und Jaeger.** Beide stehen in der Entwicklungs-Compose des
|
||||||
|
|||||||
+11
-17
@@ -45,22 +45,6 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 20
|
retries: 20
|
||||||
|
|
||||||
minio-init:
|
|
||||||
image: minio/mc:latest
|
|
||||||
depends_on:
|
|
||||||
minio:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?bitte setzen}
|
|
||||||
entrypoint: >
|
|
||||||
/bin/sh -c "
|
|
||||||
mc alias set local http://minio:9000 lite $$MINIO_ROOT_PASSWORD &&
|
|
||||||
mc mb --ignore-existing local/media &&
|
|
||||||
mc anonymous set download local/media &&
|
|
||||||
echo 'Bucket media ist bereit'
|
|
||||||
"
|
|
||||||
restart: "no"
|
|
||||||
|
|
||||||
lite:
|
lite:
|
||||||
# ghcr.io, NICHT Docker Hub: dort steht die Reihe bei 0.1.0-beta.16
|
# ghcr.io, NICHT Docker Hub: dort steht die Reihe bei 0.1.0-beta.16
|
||||||
# still, auf ghcr.io laeuft sie weiter. Die Test-Compose des Projekts
|
# still, auf ghcr.io laeuft sie weiter. Die Test-Compose des Projekts
|
||||||
@@ -82,7 +66,17 @@ services:
|
|||||||
AWS_ACCESS_KEY_ID: lite
|
AWS_ACCESS_KEY_ID: lite
|
||||||
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?bitte setzen}
|
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?bitte setzen}
|
||||||
AWS_BUCKET: media
|
AWS_BUCKET: media
|
||||||
AWS_REGION: auto
|
# Aus der Vorlage des Projekts uebernommen; fuer MinIO ist die Region
|
||||||
|
# gleichgueltig, das SDK verlangt aber eine.
|
||||||
|
AWS_REGION: eu-west-1
|
||||||
|
|
||||||
|
# Woraus die OEFFENTLICHE Adresse gebaut wird, die Lite nach dem Upload
|
||||||
|
# zurueckgibt. Steht nicht im README, nur in deren .env.template — und
|
||||||
|
# ohne sie kaemen Adressen zurueck, die nur innerhalb von Docker gelten.
|
||||||
|
#
|
||||||
|
# Endpunkt plus Bucket, wie in der Vorlage
|
||||||
|
# (BUCKET_DOMAIN=http://localhost:9000/lite-dev).
|
||||||
|
BUCKET_DOMAIN: http://localhost:9000/media
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
|
|
||||||
|
|||||||
+11
-21
@@ -60,26 +60,6 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 12
|
retries: 12
|
||||||
|
|
||||||
# Legt den Bucket an und stellt ihn auf oeffentlich lesbar. Laeuft einmal und
|
|
||||||
# beendet sich. Ohne diesen Schritt schlaegt der erste Upload fehl, und die
|
|
||||||
# Meldung nennt den Grund nicht.
|
|
||||||
minio-init:
|
|
||||||
image: minio/mc:latest
|
|
||||||
depends_on:
|
|
||||||
minio:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?bitte setzen}
|
|
||||||
entrypoint: >
|
|
||||||
/bin/sh -c "
|
|
||||||
mc alias set local http://minio:9000 lite $$MINIO_ROOT_PASSWORD &&
|
|
||||||
mc mb --ignore-existing local/media &&
|
|
||||||
mc anonymous set download local/media &&
|
|
||||||
echo 'Bucket media ist bereit'
|
|
||||||
"
|
|
||||||
networks: [internal]
|
|
||||||
restart: "no"
|
|
||||||
|
|
||||||
lite:
|
lite:
|
||||||
# ghcr.io, NICHT Docker Hub: dort steht die Reihe bei 0.1.0-beta.16
|
# ghcr.io, NICHT Docker Hub: dort steht die Reihe bei 0.1.0-beta.16
|
||||||
# still, auf ghcr.io laeuft sie weiter. Die Test-Compose des Projekts
|
# still, auf ghcr.io laeuft sie weiter. Die Test-Compose des Projekts
|
||||||
@@ -109,7 +89,17 @@ services:
|
|||||||
AWS_ACCESS_KEY_ID: lite
|
AWS_ACCESS_KEY_ID: lite
|
||||||
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?bitte setzen}
|
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?bitte setzen}
|
||||||
AWS_BUCKET: media
|
AWS_BUCKET: media
|
||||||
AWS_REGION: auto
|
# Aus der Vorlage des Projekts uebernommen; fuer MinIO ist die Region
|
||||||
|
# gleichgueltig, das SDK verlangt aber eine.
|
||||||
|
AWS_REGION: eu-west-1
|
||||||
|
|
||||||
|
# Woraus die OEFFENTLICHE Adresse gebaut wird, die Lite nach dem Upload
|
||||||
|
# zurueckgibt. Steht nicht im README, nur in deren .env.template — und
|
||||||
|
# ohne sie kaemen Adressen zurueck, die nur innerhalb von Docker gelten.
|
||||||
|
#
|
||||||
|
# Endpunkt plus Bucket, wie in der Vorlage
|
||||||
|
# (BUCKET_DOMAIN=http://localhost:9000/lite-dev).
|
||||||
|
BUCKET_DOMAIN: ${PUBLIC_URL:?bitte setzen}/media
|
||||||
networks: [internal]
|
networks: [internal]
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
Reference in New Issue
Block a user