32 lines
1023 B
Docker
32 lines
1023 B
Docker
# 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
|