deno.com
本頁內容

使用 Docker 部署 Deno

影片描述 跳到標題

了解如何使用 Docker 將 Deno 應用程式部署到相容的雲端環境。

資源 跳到標題

文字稿和程式碼 跳到標題

Deno 讓許多事情看起來很簡單:linting、格式化、與 Node 生態系統的互操作性、測試、TypeScript,但是部署呢?在生產環境中執行 Deno 有多容易?非常容易!

讓我們從看看我們的應用程式開始。這是一個為我們提供有關樹木資訊的應用程式。在首頁,我們得到一些文字。在樹木路由,我們得到一些 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://docker.dev.org.tw/ 並根據您的作業系統下載。

測試執行 docker:跳到標題

docker

然後執行命令以在 localhost:8000 上使用 Docker 執行

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 config 檔案來執行此操作。

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,我們可以在幾分鐘內將應用程式託管在生產環境中。

範例頁面和我們的 YouTube 頻道中找到更多影片。

您找到需要的資訊了嗎?

隱私權政策