[Docker]Testcontainers Cloud


Docker Hubに追加されていた。
Freeプランで300分程度。
1分未満が切り上げられて消費されるのはBuild Cloudと同じ。

テスト用の(DBなどの)コンテナーを作成、接続、破棄。
テストプログラム向けのフレームワーク。
本番のパッケージでは利用しない。

実行基盤がクラウド化されたもの。

触れてみる

まず、アプリをダウンロードしてインストールする。
クライアント判定せずにmacOSのリンクが表示されるので、適切なOSを選ぶ。

Download the free Testcontainers Desktop app

次に、サンプルプログラムの用意。

開発環境が整っているものを選び、リンク先の説明通りgit cloneする。

テスト実行前に、Testcontainersのアイコンをクリックして、Testcontainers cloudを選んでおく。
その後、説明通りにテストを実行。

AWSを利用しているようだ。

 [testcontainers.org 00:00:00.11] Connected to Docker:
   Host: tcp://127.0.0.1:54438/
   Server Version: 82+testcontainerscloud (via Testcontainers Desktop 1.18.0)
   Kernel Version: 6.5.0-1024-aws
   API Version: 1.46
   Operating System: Ubuntu 22.04.4 LTS
   Total Memory: 30.81 GB
 [testcontainers.org 00:00:04.65] Docker container 4d5f5780456a created
 [testcontainers.org 00:00:04.77] Start Docker container 4d5f5780456a
 [testcontainers.org 00:00:05.05] Wait for Docker container 4d5f5780456a to complete readiness checks
 [testcontainers.org 00:00:05.09] Docker container 4d5f5780456a ready
 [testcontainers.org 00:00:05.31] Docker container 1e39d394b62c created
 [testcontainers.org 00:00:05.32] Copy tar archive to "/" to Docker container 1e39d394b62c
 [testcontainers.org 00:00:05.46] Start Docker container 1e39d394b62c
 [testcontainers.org 00:00:05.73] Wait for Docker container 1e39d394b62c to complete readiness checks
 [testcontainers.org 00:00:06.95] Docker container 1e39d394b62c ready
 [testcontainers.org 00:00:07.43] Delete Docker container 1e39d394b62c

ローカル環境にはpullされておらず、クラウド環境で実行されたことが確認できる。
TestcontainersでRun containers locallyが選ばれている場合、(当たり前だが)プルされたイメージが表示される。

> docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

Docs for Testcontainers Cloud

尚、既存プロジェクトに組み込みたいなら、ここを読んで実装。

Getting Started

Supported languages and prerequisites

の下あたりに言語別の実装方法が書いてある。

ローカル環境でのテストについて

ハードウェアのリソースが豊富であり、Dev ContainersやDocker Composeで環境を整えている人には恩恵がない。
それどころか、イメージのキャッシュが効かなくなるため、実行速度は低下する。

一方、ハードウェアのリソースが貧弱で余裕がない場合、テスト用コンテナーの負荷をクラウドに持って行けるのでメリットがある。

GitHub ActionsなどのCIについて

サービスコンテナーが整っている場合は、無理に変えてもメリットはない。

フレームワークについて

Testcontainersの思想は良いと思うが、
既存サービスと競合する部分が多く、今のところ積極的に採用しないと思う。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA