2024-04-05 09:39:54 +00:00
|
|
|
# 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
|
2024-04-12 08:46:48 +00:00
|
|
|
RUN echo -e ":80 {\n root * /app\n try_files {path}.html {path}\n file_server\n}" > /etc/caddy/Caddyfile
|
2024-04-05 09:39:54 +00:00
|
|
|
|
|
|
|
# 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
|