容器化 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 应用程序。

相关信息

后续步骤

在下一节中,您将学习如何使用容器开发您的应用程序。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.