Files
frontpage/prod.dockerfile
2026-06-20 12:19:35 +02:00

59 lines
1.4 KiB
Docker

FROM node:26.3.1-alpine3.23 AS build-page
COPY . /src
RUN cd /src \
&& apk add pnpm \
&& pnpm install \
&& pnpm run build
# Stage 1: build
FROM debian:trixie-20260610 AS build-server
ARG NGINX_VERSION=1.31.2
ARG ZSTD_MODULE_VERSION=0.1.1
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
curl \
libpcre2-dev \
libssl-dev \
zlib1g-dev \
libzstd-dev \
tar \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
RUN curl -fsSLO "https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" \
&& tar -xzf "nginx-${NGINX_VERSION}.tar.gz" \
&& curl -fsSL "https://github.com/tokers/zstd-nginx-module/archive/refs/tags/${ZSTD_MODULE_VERSION}.tar.gz" -o zstd-nginx-module.tar.gz \
&& tar -xzf zstd-nginx-module.tar.gz
WORKDIR /build/nginx-${NGINX_VERSION}
RUN ./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/run/nginx.pid \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--add-module=/build/zstd-nginx-module-${ZSTD_MODULE_VERSION} \
&& make -j"$(nproc)" \
&& make install
# Stage 2: hardened runtime
FROM dhi.io/nginx:1.31.2-debian13
COPY --from=build-server /usr/sbin/nginx /usr/sbin/nginx
COPY --from=build-server /etc/nginx /etc/nginx
COPY --from=build-page /src/dist /usr/share/nginx/html
EXPOSE 80 443
CMD ["-g", "daemon off;"]