fieldlens-deploy/Dockerfile
Admin 756603bae1
Some checks failed
CI / verify (push) Has been cancelled
Sync tenant database startup migrations
2026-09-23 01:44:33 +00:00

49 lines
1.5 KiB
Docker

FROM node:24-alpine AS build
WORKDIR /workspace
ARG VITE_API_BASE_URL=""
ARG VITE_KEYCLOAK_ISSUER=""
ARG VITE_KEYCLOAK_CLIENT_ID="fieldlens"
ARG FIELDLENS_VERSION="dev"
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
ENV VITE_KEYCLOAK_ISSUER=$VITE_KEYCLOAK_ISSUER
ENV VITE_KEYCLOAK_CLIENT_ID=$VITE_KEYCLOAK_CLIENT_ID
ENV VITE_APP_VERSION=$FIELDLENS_VERSION
COPY package.json ./
COPY apps/api/package.json apps/api/package.json
COPY apps/web/package.json apps/web/package.json
COPY packages/contracts/package.json packages/contracts/package.json
COPY packages/fieldlens-core/package.json packages/fieldlens-core/package.json
RUN npm install
COPY . .
RUN npm run verify
RUN npm prune --omit=dev
FROM node:24-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=3000
ENV STATIC_DIR=/app/web
COPY --from=build /workspace/package.json /app/package.json
COPY --from=build /workspace/node_modules /app/node_modules
COPY --from=build /workspace/apps/api/package.json /app/apps/api/package.json
COPY --from=build /workspace/apps/api/dist /app/apps/api/dist
COPY --from=build /workspace/migrations /app/migrations
COPY --from=build /workspace/packages/contracts/package.json /app/packages/contracts/package.json
COPY --from=build /workspace/packages/contracts/dist /app/packages/contracts/dist
COPY --from=build /workspace/apps/web/dist /app/web
USER node
EXPOSE 3000
HEALTHCHECK --interval=15s --timeout=3s --start-period=20s --retries=5 \
CMD wget -qO- http://127.0.0.1:3000/api/health/live >/dev/null || exit 1
CMD ["node", "apps/api/dist/server.js"]