容器化 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 應用程式。
相關資訊
後續步驟
在下一節中,您將學習如何使用容器開發您的應用程式。