The frontend Dockerfile was missing HTTP_PROXY/HTTPS_PROXY ARG declarations in the build stage, so npm ci could not reach the npm registry through the builder's proxy. Same fix pattern as the API Dockerfile. This explains why the Web image has never been successfully built — the pipeline always skips 'Build Web' after 'Build API' fails, but once API build succeeds, Web build would hit the same npm registry issue. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
39 lines
810 B
Docker
39 lines
810 B
Docker
ARG NODE_IMAGE=node:22-alpine
|
|
ARG NGINX_IMAGE=nginx:1.27-alpine
|
|
|
|
FROM ${NODE_IMAGE} AS build
|
|
WORKDIR /app
|
|
|
|
# Proxy settings for npm ci / npm run build (npm registry is only reachable
|
|
# via the proxy from the build network).
|
|
ARG HTTP_PROXY
|
|
ARG HTTPS_PROXY
|
|
ARG NO_PROXY
|
|
ARG http_proxy
|
|
ARG https_proxy
|
|
ARG no_proxy
|
|
ENV HTTP_PROXY=${HTTP_PROXY} \
|
|
HTTPS_PROXY=${HTTPS_PROXY} \
|
|
NO_PROXY=${NO_PROXY} \
|
|
http_proxy=${http_proxy} \
|
|
https_proxy=${https_proxy} \
|
|
no_proxy=${no_proxy}
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
|
|
COPY . .
|
|
|
|
ARG VITE_API_BASE_URL=/api
|
|
ENV VITE_API_BASE_URL=${VITE_API_BASE_URL}
|
|
|
|
RUN npm run build
|
|
|
|
FROM ${NGINX_IMAGE} AS runtime
|
|
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|