############################################ # Healthcheck Binary ############################################ FROM louislam/dockge:build-healthcheck AS build_healthcheck ############################################ # Build ############################################ FROM louislam/dockge:base AS build WORKDIR /app COPY --chown=node:node ./package.json ./package.json COPY --chown=node:node ./pnpm-lock.yaml ./pnpm-lock.yaml RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile ############################################ # ⭐ Main Image ############################################ FROM louislam/dockge:base AS release WORKDIR /app COPY --chown=node:node --from=build_healthcheck /app/extra/healthcheck /app/extra/healthcheck COPY --from=build /app/node_modules /app/node_modules COPY --chown=node:node . . RUN mkdir ./data VOLUME /app/data EXPOSE 5001 HEALTHCHECK --interval=60s --timeout=30s --start-period=60s --retries=5 CMD extra/healthcheck ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["tsx", "./backend/index.ts"] ############################################ # Mark as Nightly ############################################ FROM release AS nightly RUN pnpm run mark-as-nightly