容器化 Bun 應用程式

先決條件

  • 您有一個 Git 客戶端。本節中的示例使用基於命令列的 Git 客戶端,但您可以使用任何客戶端。

概述

長期以來,Node.js 一直是伺服器端 JavaScript 應用程式的實際執行時。近年來,生態系統中出現了新的替代執行時,包括 Bun 網站。與 Node.js 一樣,Bun 也是一個 JavaScript 執行時。Bun 是一個相對輕量級的執行時,旨在實現快速高效。

為什麼要使用 Docker 開發 Bun 應用程式?有多種執行時可供選擇是件好事。但是,隨著執行時數量的增加,跨環境一致地管理不同的執行時及其依賴項變得具有挑戰性。這就是 Docker 的用武之地。按需建立和銷燬容器是管理不同執行時及其依賴項的好方法。此外,由於它是一個相當新的執行時,為 Bun 獲得一致的開發環境可能具有挑戰性。Docker 可以幫助您為 Bun 設定一致的開發環境。

獲取示例應用程式

克隆示例應用程式以配合本指南使用。開啟終端,將目錄更改到您要工作的目錄,然後執行以下命令克隆儲存庫:

$ git clone https://github.com/dockersamples/bun-docker.git && cd bun-docker

現在您的 bun-docker 目錄中應該有以下內容。

├── bun-docker/
│ ├── compose.yml
│ ├── Dockerfile
│ ├── LICENSE
│ ├── server.js
│ └── README.md

在 Dockerfile 中,您會注意到 FROM 指令使用 oven/bun 作為基礎映象。這是由 Bun 背後的公司 Oven 建立的 Bun 官方映象。此映象可在 Docker Hub 上獲取

# Use the Bun image as the base image
FROM oven/bun:latest

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . .

# Expose the port on which the API will listen
EXPOSE 3000

# Run the server when the container launches
CMD ["bun", "server.js"]

除了指定 oven/bun 作為基礎映象外,此 Dockerfile 還

  • 將容器中的工作目錄設定為 /app
  • 將當前目錄的內容複製到容器中的 /app 目錄
  • 公開埠 3000,API 正在該埠監聽請求
  • 最後,在容器啟動時使用命令 bun server.js 啟動伺服器。

執行應用程式

bun-docker 目錄中,在終端中執行以下命令。

$ docker compose up --build

開啟瀏覽器,在 https://:3000 檢視應用程式。您將在瀏覽器中看到訊息 {"Status" : "OK"}

在終端中,按 ctrl+c 停止應用程式。

在後臺執行應用程式

您可以透過新增 -d 選項將應用程式從終端分離執行。在 bun-docker 目錄中,在終端中執行以下命令。

$ docker compose up --build -d

開啟瀏覽器,在 https://:3000 檢視應用程式。

在終端中,執行以下命令以停止應用程式。

$ docker compose down

摘要

在本節中,您學習瞭如何使用 Docker 容器化和執行您的 Bun 應用程式。

相關資訊

後續步驟

在下一節中,您將學習如何使用容器開發您的應用程式。