deno.com
本页内容

使用 Docker 部署 Deno

视频描述 跳转到标题

了解如何将 Deno 应用程序与 Docker 部署到兼容的云环境。

资源 跳转到标题

文本和代码 跳转到标题

Deno 让许多事情变得简单:代码检查、格式化、与 Node 生态系统的互操作性、测试、TypeScript,但部署呢?让 Deno 在生产环境中运行有多容易?非常容易!

我们先看看我们的应用程序。它是一个提供树木信息的应用程序。在主页上我们得到一些文本。在 /trees 路由上,我们得到一些 JSON。在基于树木 ID 的动态路由上,我们得到关于那棵单一树木的信息。

import { Hono } from "jsr:@hono/hono";

const app = new Hono();

interface Tree {
  id: string;
  species: string;
  age: number;
  location: string;
}

const oak: Tree = {
  id: "1",
  species: "oak",
  age: 3,
  location: "Jim's Park",
};

const maple: Tree = {
  id: "2",
  species: "maple",
  age: 5,
  location: "Betty's Garden",
};

const trees: Tree[] = [oak, maple];

app.get("/", (c) => {
  return c.text("🌲 🌳 The Trees Welcome You! 🌲 🌳");
});

app.get("/trees", (c) => {
  return c.json(trees);
});

app.get("/trees/:id", (c) => {
  const id = c.req.param("id");
  const tree = trees.find((tree) => tree.id === id);
  if (!tree) return c.json({ message: "That tree isn't here!" }, 404);
  return c.json(tree);
});

Deno.serve(app.fetch);

使用 Docker 在本地运行 跳转到标题

请确保您的机器上安装了 Docker。在您的终端或命令提示符中,您可以运行 docker,如果您看到一长串命令列表,则说明您已安装。如果没有,请前往 https://dockerd.com.cn/ 并根据您的操作系统下载。

测试运行 docker: 跳转到标题

docker

然后运行命令,以便使用 Docker 在 localhost:8000 上运行

docker run -it -p 8000:8000 -v $PWD:/my-deno-project denoland/deno:2.0.2 run
--allow-net /my-deno-project/main.ts

访问在 localhost:8000 运行的应用程序

也可以使用 Docker 配置文件来运行此应用程序。

FROM
denoland/deno:2.0.2

# The port that your application listens to.

EXPOSE 8000

WORKDIR /app

# Prefer not to run as root.
USER deno

# These steps will be re-run upon each file change in your working directory:
COPY . .

# Compile the main app so that it doesn't need to be compiled each startup/entry.
RUN deno cache main.ts

# Warmup caches
RUN timeout 10s deno -A main.ts || [ $? -eq 124 ] || exit 1

CMD ["run", "--allow-net", "main.ts"]

然后构建它

docker build -t my-deno-project .

从那里,您可以将应用程序部署到您选择的托管提供商。今天我将使用 fly.io

部署到 fly.io 跳转到标题

如果您之前没有使用过 Fly,它是一个允许您部署和运行全栈应用程序的云平台。它们在全球多个地区运行,这使它们成为一个非常不错的选择。https://fly.io/

安装 Fly 跳转到标题

使用 curl 安装

curl -L https://fly.io/install.sh | sh

通过 CLI 登录 Fly 跳转到标题

fly auth login

这将打开浏览器,让您登录您的账户(如果尚未创建,则创建一个)。然后我们将使用以下命令通过 fly 启动应用程序

flyctl launch

这将为应用程序生成一个 fly.toml 文件,如果您愿意,可以选择不同的设置。更重要的是它会启动应用程序!我们只需等待进程完成,就应该能够查看在那个位置运行的应用程序了。

因此,通过 Deno,我们可以使用 Docker 将应用程序容器化,并通过 Fly,我们可以在几分钟内将应用程序托管到生产环境。

更多关于使用 Docker 的信息 跳转到标题

要更深入地了解 Deno 对 Docker 的支持,包括最佳实践、使用 Docker 运行测试、使用工作区等,请查看我们的 Deno 和 Docker 参考文档

示例页面和我们的YouTube 频道上查找更多视频。

您找到所需内容了吗?

隐私政策