コンテナーを利用した Bun 開発

前提条件

Bun アプリケーションのコンテナー化 を完了していること。

概要

本節ではコンテナー化したアプリケーションに対する開発環境の構築方法を学びます。 ここでは以下を行います。

  • Compose の設定を通じて、コード編集および保存とともに、実行中の Compose サービスが自動的に更新されるようにします。

サンプルアプリケーションの入手

本ガイドで利用するサンプルアプリケーションをクローンします。 端末を開いて、作業場所としたいディレクトリに移動します。 そして以下のコマンドを実行してリポジトリをクローンします。

$ git clone https://github.com/Pradumnasaraf/bun-docker.git

サービスの自動更新

Compose Watch を利用すると、自分が作成して実行している Compose サービスを自動的に更新できるようになります。 Compose Watch に関する詳細は Use Compose Watch を参照してください。

IDE またはテキストエディターを使って compose.yml ファイルを開きます。 そして Compose Watch 命令を追加します。 以下は compose.yml ファイルに Compose Watch を追加する場所を示しています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
services:
  server:
    image: bun-server
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    develop:
      watch:
        - action: rebuild
          path: .

以下のコマンドを実行することで、Compose Watch を利用したアプリケーションを実行します。

$ docker compose watch

こうしておくことで server.js を修正したときには、その変更をリアルタイムで確認できます。 イメージをわざわざ再ビルドする必要はありません。

このことを確認するため、お好みのテキストエディターを使って server.js ファイルを開きます。 そして出力メッセージを {"Status" : "OK"} から {"Status" : "Updated"} に変更します。 ファイルを保存し、http://localhost:3000 にアクセスしているブラウザーの表示更新を行います。 変更したメッセージが表示されるはずです。

端末画面から ctrl+c を押下してアプリケーションを停止します。

まとめ

本節では Compose Watch を使って、ソースコードの更新後に、イメージの自動的な再ビルドと実行の方法について学びました。

関連情報

次のステップ

次の節では、GitHub アクションを利用した CI/CD パイプラインの設定方法について見ていきます。