2024-11-03 22:21:58 +01:00
|
|
|
FROM node:20-alpine AS frontend-deps
|
2024-07-01 20:30:00 +02:00
|
|
|
|
|
|
|
|
WORKDIR /home/frontend/
|
|
|
|
|
|
|
|
|
|
COPY ./src/frontend/package.json ./package.json
|
|
|
|
|
COPY ./src/frontend/package-lock.json ./package-lock.json
|
|
|
|
|
|
|
|
|
|
RUN npm ci
|
|
|
|
|
|
|
|
|
|
COPY .dockerignore ./.dockerignore
|
|
|
|
|
COPY ./src/frontend/ .
|
|
|
|
|
|
|
|
|
|
### ---- Front-end builder image ----
|
2024-11-03 22:21:58 +01:00
|
|
|
FROM frontend-deps AS meet
|
2024-07-01 20:30:00 +02:00
|
|
|
|
|
|
|
|
WORKDIR /home/frontend
|
|
|
|
|
|
2024-11-03 22:21:58 +01:00
|
|
|
FROM frontend-deps AS meet-dev
|
2024-07-01 20:30:00 +02:00
|
|
|
|
|
|
|
|
WORKDIR /home/frontend
|
|
|
|
|
|
2024-07-02 19:36:09 +02:00
|
|
|
EXPOSE 8080
|
2024-07-01 20:30:00 +02:00
|
|
|
|
|
|
|
|
CMD [ "npm", "run", "dev"]
|
|
|
|
|
|
|
|
|
|
# Tilt will rebuild Meet target so, we dissociate meet and meet-builder
|
|
|
|
|
# to avoid rebuilding the app at every changes.
|
2024-11-03 22:21:58 +01:00
|
|
|
FROM meet AS meet-builder
|
2024-07-01 20:30:00 +02:00
|
|
|
|
|
|
|
|
WORKDIR /home/frontend
|
|
|
|
|
|
2025-03-13 18:53:14 +01:00
|
|
|
ARG VITE_API_BASE_URL
|
|
|
|
|
ENV VITE_API_BASE_URL=${VITE_API_BASE_URL}
|
|
|
|
|
|
2024-07-01 20:30:00 +02:00
|
|
|
RUN npm run build
|
|
|
|
|
|
|
|
|
|
# ---- Front-end image ----
|
2025-05-21 10:43:20 +02:00
|
|
|
FROM nginxinc/nginx-unprivileged:alpine3.21 AS frontend-production
|
2024-07-01 20:30:00 +02:00
|
|
|
|
2025-02-12 11:06:20 +01:00
|
|
|
USER root
|
2025-12-10 11:55:31 +01:00
|
|
|
RUN apk update && apk upgrade libssl3 \
|
|
|
|
|
libcrypto3 \
|
|
|
|
|
libxml2>=2.12.7-r2 \
|
|
|
|
|
libxslt>=1.1.39-r2 \
|
|
|
|
|
libexpat>=2.7.2-r0 \
|
|
|
|
|
libpng>=1.6.53-r0
|
2025-02-12 11:06:20 +01:00
|
|
|
|
|
|
|
|
USER nginx
|
|
|
|
|
|
2024-07-01 20:30:00 +02:00
|
|
|
# Un-privileged user running the application
|
|
|
|
|
ARG DOCKER_USER
|
|
|
|
|
USER ${DOCKER_USER}
|
|
|
|
|
|
|
|
|
|
COPY --from=meet-builder \
|
|
|
|
|
/home/frontend/dist \
|
|
|
|
|
/usr/share/nginx/html
|
|
|
|
|
|
|
|
|
|
COPY ./src/frontend/default.conf /etc/nginx/conf.d
|
|
|
|
|
COPY ./docker/files/usr/local/bin/entrypoint /usr/local/bin/entrypoint
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT [ "/usr/local/bin/entrypoint" ]
|
|
|
|
|
|
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|