dockge/docker/Dockerfile

47 lines
1.6 KiB
Text
Raw Normal View History

2023-11-30 16:10:37 +08:00
############################################
# Healthcheck Binary
############################################
FROM louislam/dockge:build-healthcheck AS build_healthcheck
2023-11-11 22:18:37 +08:00
############################################
2024-10-12 13:28:23 +01:00
# Build frontend
2023-11-11 22:18:37 +08:00
############################################
2024-10-12 13:28:23 +01:00
FROM louislam/dockge:base AS build_frontend
WORKDIR /app
COPY --chown=node:node . .
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
pnpm install && \
pnpm run build:frontend
############################################
# Install node modules
############################################
FROM louislam/dockge:base AS build_nodemodules
2023-11-11 22:18:37 +08:00
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
2023-11-30 16:10:37 +08:00
COPY --chown=node:node --from=build_healthcheck /app/extra/healthcheck /app/extra/healthcheck
2024-10-12 13:28:23 +01:00
COPY --from=build_frontend /app/frontend-dist /app/frontend-dist
COPY --from=build_nodemodules /app/node_modules /app/node_modules
COPY --chown=node:node . .
2023-11-11 22:18:37 +08:00
RUN mkdir ./data
VOLUME /app/data
EXPOSE 5001
2023-11-30 16:10:37 +08:00
HEALTHCHECK --interval=60s --timeout=30s --start-period=60s --retries=5 CMD extra/healthcheck
2023-11-11 22:18:37 +08:00
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
2024-01-19 02:13:43 +08:00
CMD ["bash", "-c", "node ./extra/clean-tsx-tmp.js && tsx ./backend/index.ts"]
2023-11-11 22:18:37 +08:00
############################################
# Mark as Nightly
############################################
FROM release AS nightly
RUN pnpm run mark-as-nightly