# ================================================== # Build Swift Image # ================================================== FROM swift:6.0-noble AS build # Install OS updates RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \ && apt-get -q update \ && apt-get -q dist-upgrade -y WORKDIR /build # First just resolve dependencies. COPY ./Package.* ./ RUN --mount=type=cache,target=/build/.build swift package resolve # Copy entire repo into container COPY . . # Build the static site. RUN --mount=type=cache,target=/build/.build swift run # ================================================== # Build CSS Image # ================================================== FROM node:23-alpine AS css WORKDIR /build RUN npm install -g pnpm@latest-10 COPY . . RUN pnpm install && pnpm run css-build # ================================================== # Run Image # ================================================== FROM caddy:2.9.1-alpine WORKDIR /app COPY --from=build /build/deploy . COPY --from=css /build/content/static/output.css ./static/output.css EXPOSE 80 CMD ["/usr/bin/caddy", "file-server", "--root", "/app", "--listen", ":80"]