Open5
testcontainers-go 利用メモ
LocalStack
などを使って、外部サービスをモックにしないテストを実施してみたく、testcontainers-go
を使ってみる。
前提
- go 1.23
- testcontainers-go 0.33.0
GoのテストのTestMain
の中でコンテナを起動する処理を書いてみたが、複数のテストを実行する場合にエラーになることがある。
create container: port not found: creating reaper failed
このIssueが怪しい
いくつかやり取りを見てみると、使用済みコンテナを掃除するreaper
が、複数テストを実行すると起動できないことがあると読める。SkipReaper
オプションをONにすると解消するともあるが、その辺りのオプションを調べてみる。
reaper
として使うRyuk
は優先的に立ち上げられなければいけないが、これがうまくいっていないのだろうか?TESTCONTAINERS_RYUK_CONTAINER_PRIVILEGED
環境変数をtrue
にすれば良さそう。
(TestMainでコンテナ起動処理書いたのミスったかな? t.Setenv
使えないや)
無理やりos.Setenv
でTESTCONTAINERS_RYUK_CONTAINER_PRIVILEGED
を設定してみると…解消!