DenoのOakフレームワークの環境を構築する方法

概要

Deno ベースの Web フレームワークである Oak の様々な環境構築方法について解説します。

本記事では、以下3通りの方法で環境構築をする方法を紹介します。


  1. コアモジュールで環境構築する方法
  2. Dockerで環境構築する方法

ここでは、以下バージョンを使用した、Oakの環境を構築する方法を説明します。

Oak v8.0.0
Deno v1.16.0

また、今回作成するコードは全て、以下に掲載しています。 https://github.com/wiblok/Deno-Oak

※ OakはDenoで動作します。Denoがインストールされていない場合は、公式ウェブサイトからダウンロードしてインストールしてください。
Deno

コアモジュールで環境構築する方法

この方法では、Oak のコアモジュールを Import して使用します。 以下の手順に従って実行してください。

Oak単体で環境を構築するには、以下の前提条件を満たす必要があります

プロジェクトディレクトリの作成

まず、Oakプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください

mkdir oak-core-project

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd oak-core-project

移動後、プロジェクトのルートディレクトリに移動します。

アプリケーションの作成

Oakアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.ts)を作成し、以下のコードを追加してください

app.ts

import { Application } from "https://deno.land/x/oak@v8.0.0/mod.ts";

const app = new Application();

app.use((ctx) => {
  ctx.response.body = "Hello, Oak!";
});

await app.listen({ port: 8000 });

上記の例では、Oakアプリケーションの基本的な構造を示しています。中間処理機能を使用してルートパスに対するハンドラーを定義し、レスポン

スとしてHello, Oak!を返します。

最終的に以下のようなディレクトリ構造になります。

oak-core-project
├── app.ts

サーバーの起動

最後に、Oakサーバーを起動します。以下のコマンドを実行してください

deno run --allow-net app.ts

サーバーが正常に起動すると、コンソールに「サーバーがポート8000で起動しました」と表示されます。 ブラウザでhttp://localhost:8000にアクセスして、Oakアプリケーションが正常に動作していることを確認してください。

Dockerで環境構築する方法

DenoにおいてもDockerを使用して環境を構築することができます。

まず、Dockerをインストールしてください。公式のDockerウェブサイトから、対応するオペレーティングシステムに合わせたDockerのインストーラーをダウンロードし、インストールを行ってください。

プロジェクトディレクトリの作成

まず、Denoプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください:

mkdir deno-docker-project

プロジェクトディレクトリへの移動

作成したプロジェクトディレクトリに移動します。以下のコマンドを実行してください

cd deno-docker-project

DockerFileの作成

# Use the official Deno Docker image as the base image
FROM denoland/deno:1.14.0

# Set the working directory inside the container
WORKDIR /app

# Copy the application files to the container
COPY . .

# Allow network access for the Deno application
ENV DENO_FLAGS="--allow-net=0.0.0.0:3000"

# Specify the command to run the Deno application with Oak
CMD ["deno", "run", "--unstable", "--allow-net", "app.ts"]

アプリケーションの作成

Denoアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.ts)を作成し、以下のコードを追加してください:

app.ts

import { Application } from "https://deno.land/x/oak@v8.0.0/mod.ts";

const app = new Application();

app.use((ctx) => {
  ctx.response.body = "Hello, Oak!";
});

await app.listen({ port: 3000 });

上記の例では、DenoとOakを使用してアプリケーションの基本的な構造を示しています。Routerを使用してルートパスに対するハンドラーを定義し、レスポンスとしてHello, Deno!を返します。

最終的に以下のようなディレクトリ構造になります。

oak-core-project
├── app.ts
|── Dockerfile

Dockerイメージのビルド

以下のコマンドを使用して、Dockerイメージをビルドします:

docker build -t deno-docker-project .

Dockerコンテナの実行

ビルドしたDockerイメージからDockerコンテナを実行します:

docker run -p 3000:3000 -d deno-docker-project

これにより、DenoアプリケーションがDockerコンテナ内で実行され、ホストのポート3000にマッピングされます。ブラウザやAPIテストツールなどから http://localhost:3000 にアクセスすることでDenoアプリケーションにアクセスできます。

以上が、Dockerを使用してDenoアプリケーションを環境構築する手順です。Dockerを活用することで、環境構築の手間を減らし、開発プロセスをスムーズにすることができます。注意: ホストのファイアウォールやネットワーク設定によっては、ポート3000へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。