All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- postinstall : test -f avant d'appeler copy-pdfjs.sh (absent pendant pnpm install Docker) - Dockerfile : RUN copy-pdfjs.sh après COPY . . pour copier les fichiers PDF.js - Dockerfile : COPY content/ en production pour Nuxt Content Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
916 B
Docker
49 lines
916 B
Docker
# syntax = docker/dockerfile:1
|
|
|
|
ARG NODE_VERSION=23.11.0-slim
|
|
|
|
FROM node:${NODE_VERSION} AS base
|
|
|
|
ARG PORT=3000
|
|
|
|
WORKDIR /app
|
|
|
|
# Build
|
|
FROM base AS build
|
|
|
|
RUN corepack enable
|
|
|
|
COPY package.json pnpm-lock.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
RUN pnpm rebuild sharp
|
|
|
|
COPY . .
|
|
|
|
RUN sh scripts/copy-pdfjs.sh
|
|
RUN pnpm run build
|
|
|
|
# Production
|
|
FROM base AS production
|
|
|
|
ENV PORT=${PORT}
|
|
ENV NODE_ENV=production
|
|
|
|
RUN apt-get update && apt-get -fy install curl git && rm -rf /var/cache/apt/*
|
|
|
|
COPY --from=build /app/.output /app/.output
|
|
COPY --from=build /app/site /app/site
|
|
COPY --from=build /app/content /app/content
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
|
|
CMD curl -f http://localhost:${PORT}/api/health || exit 1
|
|
|
|
EXPOSE $PORT
|
|
CMD [ "node", ".output/server/index.mjs" ]
|
|
|
|
# Development
|
|
FROM base AS development
|
|
WORKDIR /app
|
|
|
|
RUN corepack enable
|
|
ENTRYPOINT [ "pnpm", "run", "dev" ]
|