feat: add Docker support with deployment scripts and database backup functionality

This commit is contained in:
syntaxbullet
2026-07-09 13:29:41 +02:00
parent 5a08350b6a
commit 1216a37049
12 changed files with 418 additions and 167 deletions

48
Dockerfile Normal file
View File

@@ -0,0 +1,48 @@
# syntax=docker/dockerfile:1
FROM node:22-bookworm-slim AS base
ENV NEXT_TELEMETRY_DISABLED=1 \
PNPM_HOME=/pnpm \
PATH=/pnpm:$PATH
WORKDIR /app
RUN corepack enable && corepack prepare pnpm@10 --activate
FROM base AS deps
COPY package.json pnpm-lock.yaml .npmrc ./
RUN pnpm install --frozen-lockfile
FROM deps AS build
ARG NEXT_PUBLIC_SERVER_URL=http://localhost:3000
ARG __NEXT_PRIVATE_ORIGIN=http://localhost:3000
ENV NODE_ENV=production \
NEXT_PUBLIC_SERVER_URL=$NEXT_PUBLIC_SERVER_URL \
__NEXT_PRIVATE_ORIGIN=$__NEXT_PRIVATE_ORIGIN \
DATABASE_URL=file:/app/shared/content.db \
PAYLOAD_SECRET=build-time-placeholder \
CRON_SECRET=build-time-placeholder \
PREVIEW_SECRET=build-time-placeholder
COPY . .
RUN pnpm build
RUN pnpm prune --prod
FROM base AS runner
ENV NODE_ENV=production \
HOSTNAME=0.0.0.0 \
PORT=3000
COPY --from=build /app /app
RUN mkdir -p /app/shared /app/public/media
EXPOSE 3000
CMD ["pnpm", "start"]