123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- FROM node:20-alpine AS backend_base
- ARG UID=1000
- ARG GID=1000
- RUN deluser --remove-home node \
- && addgroup -S -g ${GID} musare \
- && adduser -SD -u ${UID} musare \
- && adduser musare musare
- RUN mkdir -p /opt/.git /opt/common /opt/types /opt/app \
- && chown -R musare:musare /opt/app
- WORKDIR /opt/app
- USER musare
- FROM backend_base AS backend_node_modules
- RUN mkdir -p /opt/app
- WORKDIR /opt/app
- COPY --chown=musare:musare --link backend/package.json backend/package-lock.json /opt/app/
- RUN npm install
- FROM backend_base AS musare_backend
- ARG CONTAINER_MODE=production
- ARG BACKEND_MODE=production
- ENV CONTAINER_MODE=${CONTAINER_MODE}
- ENV BACKEND_MODE=${BACKEND_MODE}
- COPY --chown=musare:musare --link .git /opt/.git
- COPY --chown=musare:musare --link common /opt/common
- COPY --chown=musare:musare --link types /opt/types
- COPY --chown=musare:musare --link backend /opt/app
- COPY --chown=musare:musare --link --from=backend_node_modules /opt/app/node_modules node_modules
- RUN sh -c '([[ "${BACKEND_MODE}" == "development" ]] && exit 0) || npm run build'
- ENTRYPOINT sh /opt/app/entrypoint.sh
- EXPOSE 8080/tcp
- EXPOSE 8080/udp
|