やりたいこと
testcontainers では、コンテナのライフサイクル管理に testcontainers/ryuk
が使われている。
このイメージのミラーイメージを使いたい。
簡単な方法
公式ドキュメントが推奨する方法のうち簡単なのは、プレフィックスを使う方法だろう。
環境変数に TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX
を設定するか、設定ファイルに hub.image.name.prefix
に設定する。
例えば、registry.mycompany.com/mirror/testcontainers/ryuk
にミラーイメージを作ったのならば、
上記の設定に registry.mycompany.com/mirror/
を入れれば、勝手に変換してくれる。
イメージ名を変える場合
しかし、もし、registry.mycompany.com/mirror/testcontainers-ryuk
のようにイメージ名を変えた場合は、上記では対応できない。
こういった場合は、ImageNameSubstitutor
を継承するクラスを作って対応することが、公式ドキュメントでは推奨されている。
以下のような感じで、testcontainers-ryuk
専用の変換を作れる。
public class MyImageNameSubstitutor extends ImageNameSubstitutor { @Override public DockerImageName apply(DockerImageName original) { if (original.asCanonicalNameString().equals("testcontainers/ryuk:0.3.3")) { return DockerImageName.parse( "registry.mycompany.com/mirror/testcontainers-ryuk:latest"); } else { return original; } } @Override protected String getDescription() { return "change to sample mirror"; } }
公式非推奨方法
一応、公式ドキュメントでは非推奨の方法ではあるが、testcontainers/ryuk
用の環境変数を設定すれば、別名のミラーイメージに変更できる。
気になる方はこのページ の Customizing images
を参照されたし。