# syntax=docker/dockerfile:1.7-labs ARG NODE_IMAGE=node:20.14.0-bookworm ARG NGINX_IMAGE=nginx:1.27-alpine ARG VERSION=0.0.0 ARG CHANNEL=dev ARG GIT_SHA=0000000 ARG SOURCE_DATE_EPOCH=0 FROM ${NODE_IMAGE} AS build WORKDIR /workspace ENV CI=1 \ SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} COPY src/Web/StellaOps.Web/package.json src/Web/StellaOps.Web/package-lock.json ./ RUN npm ci --prefer-offline --no-audit --no-fund COPY src/Web/StellaOps.Web/ ./ RUN npm run build -- --configuration=production FROM ${NGINX_IMAGE} AS runtime ARG VERSION ARG CHANNEL ARG GIT_SHA WORKDIR /usr/share/nginx/html RUN rm -rf ./* COPY --from=build /workspace/dist/stellaops-web/ /usr/share/nginx/html/ COPY ops/devops/release/docker/nginx-default.conf /etc/nginx/conf.d/default.conf LABEL org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${GIT_SHA}" \ org.opencontainers.image.source="https://git.stella-ops.org/stella-ops/feedser" \ org.stellaops.release.channel="${CHANNEL}" EXPOSE 8080