在 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。




