Logo文档
部署指南

容器部署

使用 Docker 容器将 NEXTDEVKIT 部署到各种云平台

使用 Docker 容器将您的 NEXTDEVKIT 应用程序部署到各种云平台,获得最大的灵活性和控制力。

🌟 为什么选择容器部署?

容器部署非常适合需要以下特性的应用程序:

  • 🔧 完全控制:对运行时环境和依赖项的完全控制
  • 🌐 平台灵活性:可部署到任何云提供商或本地环境
  • 📦 一致环境:开发、测试和生产环境保持一致
  • 🔄 易于扩展:通过编排平台实现水平扩展
  • 🛡️ 隔离性:进程和资源隔离以确保安全性
  • ⚡ 快速部署:快速推出和回滚

🚀 部署步骤

步骤 1:配置环境变量

请参考 环境设置指南 了解详细的环境变量配置。

.env.example 复制为 .env.production.env 并更新环境变量。

步骤 2:使用 Dockerfile

使用项目根目录中的 Dockerfile

# 使用官方 Node.js 运行时作为基础镜像
FROM node:20-alpine AS base

# 仅在需要时安装依赖项
FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app

# 根据首选包管理器安装依赖项
COPY package.json pnpm-lock.yaml* ./
COPY source.config.ts ./
COPY src/content ./src/content
RUN corepack enable pnpm && pnpm i --frozen-lockfile

# 仅在需要时重新构建源代码
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .

# 构建应用程序
RUN corepack enable pnpm && pnpm run build

# 生产镜像,复制所有文件并运行 next
FROM base AS runner
WORKDIR /app

ENV NODE_ENV production

RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

# 复制构建的应用程序
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static

USER nextjs

EXPOSE 3000

ENV PORT 3000
ENV HOSTNAME "0.0.0.0"

# 启动应用程序
CMD ["node", "server.js"]

更新 next.config.ts 文件以启用独立输出:

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  output: "standalone",
};

export default nextConfig;

步骤 3:本地构建和测试

# 构建 Docker 镜像
docker build -t nextdevkit:latest .

# 本地运行容器
docker run -p 3000:3000 --env-file .env nextdevkit:latest

步骤 4:部署到云平台

选择您首选的云平台:

推荐平台

对于通用容器部署,NEXTDEVKIT 支持所有主要的云提供商:

平台类型网站
Azure Container Apps微软云azure.microsoft.com
Google Cloud Run谷歌云cloud.google.com
Railway开发者友好railway.app
Fly.io全球边缘容器fly.io
Dokploy自托管dokploy.com
Coolify自托管coolify.io

您的 NEXTDEVKIT 应用程序现在已容器化并准备好进行部署!🐳🚀