32 lines
846 B
Text
32 lines
846 B
Text
|
# 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 * /web\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
|