first commit
This commit is contained in:
59
dockerfile
Normal file
59
dockerfile
Normal file
@@ -0,0 +1,59 @@
|
||||
FROM node:25-alpine3.22 AS build-page
|
||||
|
||||
COPY . /src
|
||||
|
||||
RUN cd /src \
|
||||
&& apk add pnpm \
|
||||
&& pnpm install \
|
||||
&& pnpm run build
|
||||
|
||||
# Stage 1: build
|
||||
|
||||
FROM debian:13 AS build-server
|
||||
|
||||
ARG NGINX_VERSION=1.30.0
|
||||
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.30.0-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;"]
|
||||
Reference in New Issue
Block a user