Docker環境でのnote_post.ymlテストとデバッグ(開発日記 No.107)
関連リンク
はじめに
昨日は、GitHub Issue #3 を作成し、Docker 環境での note_post.yml
のテストとデバッグを行う必要性を提起しました。今日は、その Issue に基づいて、実際に Docker 環境を構築し、パイプラインのデバッグを進めていきます。
背景と目的
現在、note_post.yml
パイプラインが失敗していますが、ローカルの WSL2 環境では OASIS ライブラリが正常に動作せず、テスト自体が困難な状況です。そこで、Docker 環境を構築することで、安定した環境でテストとデバッグを行い、最終的に正常に動作するパイプラインを作成することを目的とします。
検討内容
まず、Docker イメージの選定と構築方法を検討しました。OASIS ライブラリが動作する環境を構築する必要があるため、適切なベースイメージを選択し、必要な依存関係をインストールする方法を調査しました。また、ローカル環境から Docker コンテナへコードをマウントする方法や、Docker コンテナ内でテストを実行する方法についても検討しました。
実装内容
-
Dockerfile の作成:
以下の内容で Dockerfile を作成しました。
FROM ubuntu:latest RUN apt-get update && apt-get install -y python3 python3-pip WORKDIR /app COPY . . RUN pip3 install -r requirements.txt
-
Docker イメージのビルド:
以下のコマンドで Docker イメージをビルドしました。
docker build -t note_post_test .
-
Docker コンテナの起動とテスト実行:
以下のコマンドで Docker コンテナを起動し、テストを実行しました。
docker run -v $(pwd):/app note_post_test python3 test.py
(
test.py
は、note_post.yml
の動作を検証するテストスクリプトを想定)
技術的なポイント
Docker イメージのビルド時に、COPY . .
で現在のディレクトリの内容をすべてコンテナにコピーしている点がポイントです。これにより、ローカルで編集したコードをすぐに Docker コンテナ内でテストできます。また、-v $(pwd):/app
オプションで、ローカルの現在のディレクトリを Docker コンテナの/app
ディレクトリにマウントすることで、ローカルの変更がコンテナに反映されるようにしています。
所感
Docker 環境の構築は、思ったよりもスムーズに進みました。ローカル環境で動かないライブラリも、Docker コンテナ内では問題なく動作することが確認でき、テスト環境として非常に有効であることがわかりました。しかし、まだテストスクリプトが不完全なため、note_post.yml
のすべての機能を網羅的にテストできていません。
今後の課題
-
note_post.yml
の動作を検証するためのテストスクリプト (test.py
) を拡充する。 - Docker コンテナ内で、より詳細なデバッグを行う方法を調査する(例: デバッガのアタッチ)。
- CI/CD パイプラインに Docker 環境でのテストを組み込むことを検討する。
まとめ
今日は、note_post.yml
のテストとデバッグのために、Docker 環境を構築しました。Docker を用いることで、ローカル環境の依存関係に左右されずにテストを実行できることが確認できました。今後は、テストスクリプトの拡充と、より効率的なデバッグ手法の確立を目指します。
Discussion