Create Dockerfile

This commit is contained in:
Elias Stepanik 2025-05-24 00:09:11 +02:00 committed by GitHub
parent 5c3501caa4
commit f3f81172ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

26
Dockerfile Normal file
View File

@ -0,0 +1,26 @@
# ---------- build stage ----------
FROM node:20-alpine AS builder
# pnpm is the package manager used by Strudel
RUN corepack enable && npm install -g pnpm # corepack ships with Node 20 :contentReference[oaicite:0]{index=0}
# native deps needed for sharp and other Astro plugins to compile on Alpine Linux :contentReference[oaicite:1]{index=1}
RUN apk add --no-cache git python3 make g++
WORKDIR /app
COPY . .
# deterministic install & build
RUN pnpm install --frozen-lockfile # workspace root uses pnpm :contentReference[oaicite:2]{index=2}
RUN pnpm build # produces website/dist (Astro default) :contentReference[oaicite:3]{index=3}
# ---------- runtime stage ----------
FROM nginx:alpine
LABEL org.opencontainers.image.source="https://github.com/tidalcycles/strudel"
# copy the static site produced above
COPY --from=builder /app/website/dist /usr/share/nginx/html
EXPOSE 80
HEALTHCHECK CMD wget -qO- http://localhost/ || exit 1
CMD ["nginx","-g","daemon off;"]