diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index a50d691..0000000 --- a/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -node_modules -.next -.git -*.md -.env -.env.local -prisma/dev.db -prisma/dev.db-journal diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b640f5e..0000000 --- a/Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -FROM node:22-slim AS base - -# ── 依赖安装层 ── -FROM base AS deps -WORKDIR /app -RUN npm install -g pnpm@9 -COPY package.json pnpm-lock.yaml ./ -COPY prisma ./prisma -RUN pnpm install --frozen-lockfile -RUN pnpm exec prisma generate - -# ── 构建层 ── -FROM base AS builder -WORKDIR /app -RUN npm install -g pnpm@9 -COPY --from=deps /app/node_modules ./node_modules -COPY . . -ENV NEXT_TELEMETRY_DISABLED=1 -RUN pnpm build - -# ── 运行层 ── -FROM base AS runner -WORKDIR /app - -ENV NODE_ENV=production -ENV NEXT_TELEMETRY_DISABLED=1 - -RUN groupadd --system --gid 1001 nodejs -RUN useradd --system --uid 1001 nextjs - -# 拷贝构建产物和依赖 -COPY --from=builder /app/public ./public -COPY --from=builder /app/.next/standalone ./ -COPY --from=builder /app/.next/static ./.next/static -COPY --from=deps /app/node_modules ./node_modules -COPY --from=builder /app/prisma ./prisma - -# 重新生成 Prisma Client(匹配 runner 的 OpenSSL 版本) -RUN apt-get update -y && apt-get install -y openssl && rm -rf /var/lib/apt/lists/* -RUN npx prisma generate - -# 数据库持久化目录 -RUN mkdir -p /app/prisma && chown -R nextjs:nodejs /app - -USER nextjs -EXPOSE 3000 -ENV PORT=3000 -ENV HOSTNAME="0.0.0.0" - -CMD ["sh", "-c", "npx prisma db push --skip-generate 2>/dev/null; node server.js"] diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index bf155fd..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - blog: - build: . - container_name: sui-blog - restart: unless-stopped - ports: - - "8090:3000" - environment: - - DATABASE_URL=file:/app/prisma/dev.db - - SESSION_SECRET=${SESSION_SECRET:-change-me-to-a-random-string} - - ADMIN_PASSWORD=${ADMIN_PASSWORD:-asui2026} - - AI_BASE_URL=${AI_BASE_URL:-https://api.openai.com/v1} - - AI_API_KEY=${AI_API_KEY:-} - - AI_MODEL=${AI_MODEL:-gpt-4o-mini} - volumes: - - blog-data:/app/prisma - -volumes: - blog-data: