在 DigitalOcean 上部署 Bun 应用
DigitalOcean 是一个云平台,提供多种构建和部署应用的服务。
本指南将使用 Dockerfile 将 Bun HTTP 服务器部署到 DigitalOcean。
- 创建一个新的 DigitalOcean 容器注册表
创建一个新的容器注册表以存储 Docker 镜像。
terminaldoctl registry create bun-digitalocean-demoTextName Endpoint Region slug bun-digitalocean-demo registry.digitalocean.com/bun-digitalocean-demo sfo2你应该能在 DigitalOcean 注册表控制面板 看到新的注册表:

- 创建新的 Dockerfile
在项目根目录中创建一个新的
Dockerfile。此文件包含用于初始化容器、将本地项目文件复制到容器中、安装依赖项以及启动应用的指令。Dockerfile# 使用官方 Bun 镜像运行应用 FROM oven/bun:debian # 设置工作目录为 `/app` WORKDIR /app # 将 package.json 和 bun.lock 复制到容器中 COPY package.json bun.lock ./ # 安装依赖 RUN bun install --production --frozen-lockfile # 将其余应用文件复制到容器中 COPY . . # 开放端口(DigitalOcean 会设置 PORT 环境变量) EXPOSE 8080 # 启动应用 CMD ["bun", "index.ts"]在项目根目录中创建一个新的
.dockerignore文件。该文件列出了要从容器镜像中_排除_的文件和目录,例如node_modules。排除它们可以让构建更快、镜像更小:.dockerignorenode_modules Dockerfile* .dockerignore .git .gitignore README.md LICENSE .vscode .env # 其他你想排除的文件或目录 - 用 Docker 验证登录 DigitalOcean 注册表
在构建和推送 Docker 镜像之前,先用 Docker 认证登录 DigitalOcean 容器注册表:
terminaldoctl registry loginTextLogging Docker in to registry.digitalocean.com Notice: Login valid for 30 days. Use the --expiry-seconds flag to set a shorter expiration or --never-expire for no expiration. - 构建并推送 Docker 镜像到 DigitalOcean 注册表
确保你当前在包含
Dockerfile的目录,使用一条命令构建并推送 Docker 镜像到 DigitalOcean 注册表:terminaldocker buildx build --platform=linux/amd64 -t registry.digitalocean.com/bun-digitalocean-demo/bun-digitalocean-demo:latest --push .推送完成后,你应能在 DigitalOcean 注册表控制面板 看到镜像:

- 创建新的 DigitalOcean App Platform 项目
- 访问已上线的应用
你的应用现在已经上线。应用创建完成后,你应该能在 App Platform 控制面板中看到它及其公共 URL。




