執行環境套件管理器打包器測試執行器程式碼檢查格式化指南參考部落格意見回饋

在 DigitalOcean 上部署 Bun 應用

DigitalOcean 是一個雲平臺,提供多種建置和部署應用的服務。

本指南將使用 Dockerfile 將 Bun HTTP 伺服器部署到 DigitalOcean。


  1. 建立一個新的 DigitalOcean 容器登錄檔

    建立一個新的容器登錄檔以儲存 Docker 映象。

    在 DigitalOcean 控制面板中,進入 容器登錄檔,並填寫新登錄檔的詳細資訊。

    DigitalOcean 登錄檔控制面板

    確認資訊無誤後,點選 建立登錄檔。

    你應該能在 DigitalOcean 登錄檔控制面板 看到新的登錄檔:

    DigitalOcean 登錄檔控制面板

  2. 建立新的 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。排除它們可以讓建置更快、映象更小:

    .dockerignore
    node_modules
    Dockerfile*
    .dockerignore
    .git
    .gitignore
    README.md
    LICENSE
    .vscode
    .env
    # 其他你想排除的檔案或目錄
    
  3. 用 Docker 驗證登入 DigitalOcean 登錄檔

    在建置和推送 Docker 映象之前,先用 Docker 認證登入 DigitalOcean 容器登錄檔:

    terminal
    doctl registry login
    
    Text
    Logging 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.
    
  4. 建置並推送 Docker 映象到 DigitalOcean 登錄檔

    確保你當前在包含 Dockerfile 的目錄,使用一條命令建置並推送 Docker 映象到 DigitalOcean 登錄檔:

    terminal
    docker buildx build --platform=linux/amd64 -t registry.digitalocean.com/bun-digitalocean-demo/bun-digitalocean-demo:latest --push .
    

    推送完成後,你應能在 DigitalOcean 登錄檔控制面板 看到映象:

    DigitalOcean 登錄檔控制面板

  5. 建立新的 DigitalOcean App Platform 專案

    在 DigitalOcean 控制面板中,進入 App Platform > 建立應用。你可以直接從容器映象建立專案。

    DigitalOcean App Platform 專案控制面板

    確認資訊無誤後,點選 下一步。

    DigitalOcean App Platform 服務控制面板

    檢查並設定資源設定,然後點選 建立應用。

    DigitalOcean App Platform 服務控制面板

  6. 訪問已上線的應用

    你的應用現在已經上線。應用建立完成後,你應該能在 App Platform 控制面板中看到它及其公共 URL。

    DigitalOcean App Platform 應用控制面板