This commit improves multiple aspects of Docker builds:
- Enable artifact output validation for Dockerfile.
- Correct the path references in Dockerfile for the distribution
directory.
- Add Dockerfile specific indentation rules to `.editorconfig`.
- Use `npm run install-deps` for dependency installation, enhancing
build reliability.
- Add automation script `verify-web-server-status.js` to verify running
web server on given URL.
- Introduce automated build verification for Dockerfile:
- On macOS, install Docker with colima as the container runtime
because default agents do not include Docker and Docker runtime is
not installed due to licensing issues (see actions/runner-images#17).
- On Windows, there's no Linux container support (actions/runner#904,
actions/runner-images#1143), so keep the checks for macOS and Ubuntu
only.
17 lines
453 B
Docker
17 lines
453 B
Docker
# Build
|
|
FROM node:lts-alpine AS build-stage
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN npm run install-deps
|
|
RUN npm run build \
|
|
&& npm run check:verify-build-artifacts -- --web
|
|
RUN mkdir /dist \
|
|
&& dist_directory=$(node 'scripts/print-dist-dir.js' --web) \
|
|
&& cp -a "${dist_directory}/." '/dist'
|
|
|
|
# Production stage
|
|
FROM nginx:stable-alpine AS production-stage
|
|
COPY --from=build-stage /dist /usr/share/nginx/html
|
|
EXPOSE 80
|
|
CMD ["nginx", "-g", "daemon off;"]
|