| | |
| | |
| | |
| | ARG INCLUDE_DB=false |
| |
|
| | |
| | FROM node:20 as builder-production |
| |
|
| | WORKDIR /app |
| |
|
| | COPY --link --chown=1000 package-lock.json package.json ./ |
| | RUN --mount=type=cache,target=/app/.npm \ |
| | npm set cache /app/.npm && \ |
| | npm ci --omit=dev |
| |
|
| | FROM builder-production as builder |
| |
|
| | ARG APP_BASE= |
| | ARG PUBLIC_APP_COLOR=blue |
| |
|
| | RUN --mount=type=cache,target=/app/.npm \ |
| | npm set cache /app/.npm && \ |
| | npm ci |
| |
|
| | COPY --link --chown=1000 . . |
| |
|
| | RUN npm run build |
| |
|
| | |
| | FROM mongo:latest as mongo |
| |
|
| | |
| | FROM node:20-slim as local_db_false |
| |
|
| | |
| | FROM node:20-slim as local_db_true |
| |
|
| | RUN apt-get update |
| | RUN apt-get install gnupg curl -y |
| | |
| | COPY --from=mongo /usr/bin/mongo* /usr/bin/ |
| |
|
| | ENV MONGODB_URL=mongodb://localhost:27017 |
| | RUN mkdir -p /data/db |
| | RUN chown -R 1000:1000 /data/db |
| |
|
| | |
| | FROM local_db_${INCLUDE_DB} as final |
| |
|
| | |
| | ARG INCLUDE_DB=false |
| | ENV INCLUDE_DB=${INCLUDE_DB} |
| |
|
| | |
| | ARG APP_BASE= |
| | |
| | ARG PUBLIC_APP_COLOR=blue |
| |
|
| |
|
| | |
| | RUN npm install -g dotenv-cli |
| |
|
| | |
| | RUN userdel -r node |
| | RUN useradd -m -u 1000 user |
| | USER user |
| | |
| | ENV HOME=/home/user \ |
| | PATH=/home/user/.local/bin:$PATH |
| |
|
| | WORKDIR /app |
| |
|
| | |
| | RUN touch /app/.env.local |
| |
|
| | |
| | COPY --chown=1000 package.json /app/package.json |
| | COPY --chown=1000 .env /app/.env |
| | COPY --chown=1000 entrypoint.sh /app/entrypoint.sh |
| | COPY --chown=1000 gcp-*.json /app/ |
| |
|
| | |
| | COPY --from=builder --chown=1000 /app/build /app/build |
| | COPY --from=builder --chown=1000 /app/node_modules /app/node_modules |
| |
|
| | RUN chmod +x /app/entrypoint.sh |
| |
|
| | CMD ["/bin/bash", "-c", "/app/entrypoint.sh"] |
| |
|