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

前提条件

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

概要

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

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

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

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

$ git clone https://github.com/Pradumnasaraf/c-plus-plus-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:
  ok-api:
    image: ok-api
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    develop:
      watch:
        - action: rebuild
          path: .

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

$ docker compose watch

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

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

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

まとめ

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

関連情報

次のステップ

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