Der Container ging sofort wieder aus, „exited:unhealthy", und im Deploy-Log
stand nichts daneben: Gebaut, gestartet, fertig. Ausgegangen ist er, weil
nginx seine Konfiguration nicht las.
Schuld war ein `sed` im Dockerfile, das `gzip_static on;` vor die erste Zeile
schieben sollte, die mit `}` beginnt. Das ist in der nginx.conf des Bildes
aber nicht das Ende von `http { … }`, sondern das von `events { … }` — und
dort ist die Anweisung ungültig.
Sie steht jetzt im eigenen Server-Block, wo sie hingehört, und das `sed` ist
weg. Eine Zeile, die eine fremde Konfigurationsdatei mit einem Muster
umschreibt, ist ohnehin eine Wette darauf, wie die Datei innen aussieht.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LTw6xVYgjMy9AQtfs1Gdyu
40 lines
1.4 KiB
Nginx Configuration File
40 lines
1.4 KiB
Nginx Configuration File
# Ein Server, ein Verzeichnis, drei Seiten.
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
|
|
# Vorkomprimierte Fassungen liegen dank `precompress` im Build daneben
|
|
# (.gz). Ohne diese Zeile ignoriert nginx sie und packt jede Antwort neu.
|
|
#
|
|
# Sie steht hier im Server-Block und nicht per `sed` in der
|
|
# `nginx.conf` des Bildes: Dort war die erste Zeile, die mit `}` beginnt,
|
|
# das Ende von `events { … }`. `gzip_static` ist dort keine gültige
|
|
# Anweisung, nginx verweigerte den Start, und der Container ging sofort
|
|
# wieder aus — „exited:unhealthy", ohne dass im Deploy-Log etwas
|
|
# danebenstand.
|
|
gzip_static on;
|
|
|
|
# Die Seiten sind beim Bauen entstanden und ändern sich nur mit dem
|
|
# nächsten Deployment. Das HTML selbst bleibt trotzdem ungecacht: Sonst
|
|
# zeigt ein Browser den Wegweiser von vorgestern, wenn sich der Text
|
|
# ändert.
|
|
location / {
|
|
try_files $uri $uri/ $uri.html =404;
|
|
add_header Cache-Control "no-cache";
|
|
}
|
|
|
|
# Alles unter /_app/immutable trägt seinen Hash im Namen — das darf ein
|
|
# Jahr im Cache liegen.
|
|
location /_app/immutable/ {
|
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
}
|
|
|
|
location = /stammtisch-hersbruck.svg {
|
|
add_header Cache-Control "public, max-age=604800";
|
|
}
|
|
|
|
error_page 404 /index.html;
|
|
}
|