Koyeb

将 Nitro 应用部署到 Koyeb。

预设: koyeb

Read more in www.koyeb.com.

#使用控制面板

Koyeb 控制面板中,点击 Create App

选择 GitHub 作为部署方式。

选择包含应用代码的 GitHub repositorybranch

为服务命名。

如果你没有在 package.json 文件中添加 start 命令,请在 Build and deployment settings 下,切换运行命令字段对应的覆盖开关。在 Run command 字段中输入:

node .output/server/index.mjs

Advanced(高级)部分,点击 Add Variable(添加变量)并添加一个 NITRO_PRESET 变量,设置为 koyeb

命名 App(应用)。

点击 Deploy(部署)按钮。

#使用 Koyeb CLI

根据你的操作系统,按照说明安装 Koyeb CLI 客户端,或直接从 GitHub 上的发布页面下载。

在 Koyeb 控制面板中访问你所在组织的 API 设置,创建 Koyeb API 访问令牌。

输入以下命令,使用 Koyeb CLI 登录你的账户:

koyeb login

在提示时粘贴你的 API 凭据。

使用以下命令从 GitHub 仓库部署 Nitro 应用。请务必将 <APPLICATION_NAME><YOUR_GITHUB_USERNAME><YOUR_REPOSITORY_NAME> 替换为你自己的值:

koyeb app init <APPLICATION_NAME> \
   --git github.com/<YOUR_GITHUB_USERNAME>/<YOUR_REPOSITORY_NAME> \
   --git-branch main \
   --git-run-command "node .output/server/index.mjs" \
   --ports 3000:http \
   --routes /:3000 \
   --env PORT=3000 \
   --env NITRO_PRESET=koyeb

#使用 Docker 容器

在项目的根目录创建一个 .dockerignore 文件,并添加以下行:

Dockerfile
.dockerignore
node_modules
npm-debug.log
.nitro
.output
.git
dist
README.md

在项目的根目录添加一个 Dockerfile

FROM node:20-alpine AS base

FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci

FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build && npm cache clean --force

FROM base AS runner
WORKDIR /app
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nitro
COPY --from=builder /app .
USER nitro
EXPOSE 3000
ENV PORT 3000
CMD ["npm", "run", "start"]

上述 Dockerfile 提供了运行 Nitro 应用所需的最低要求。你可以根据需求轻松扩展它。

接下来,将 Docker 镜像推送到注册表,例如 Docker HubGitHub Container Registry

在 Koyeb 控制面板中,使用镜像和标签字段指定要部署的镜像。你也可以使用 Koyeb CLI。有关更多信息,请参阅 Koyeb 的 Docker 文档