# Builder-Stage FROM node:20-alpine AS builder # Setzt das Arbeitsverzeichnis im Container WORKDIR /git # Kopiert den Repository-Inhalt in den Container COPY . . # Installiert Abhängigkeiten und baut die Site. Ausgabeverzeichnis ist /app/build RUN yarn install && yarn run build # Endstufe FROM caddy:2-alpine # Setzt das Arbeitsverzeichnis im Container WORKDIR /app # Kopiert das Build-Verzeichnis aus der Builder-Stage nach /web COPY --from=builder /git/build /app # Caddyfile-Konfiguration, um Dateien aus /web zu bedienen RUN echo -e ":80 {\n root * /app\n try_files {path}.html {path}\n file_server\n}" > /etc/caddy/Caddyfile # Macht Port 80 frei EXPOSE 80 # Startet Caddy mit der gegebenen Caddyfile CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"] # Befreit das Build-Verzeichnis aus der Builder-Stage ONBUILD RUN rm -rf /git