はじめに
Cloud上のJenkinsで複数あるレポジトリのテストpipelineを作りました。その時最も苦労したパーツの一つであるMySQL containerの開発時につまづいたここと、その解決方法を何回かに分けて書いていきたいと思います。
今回は一番最初にぶつかった、MySQL Containerが起動しない問題の解決方法です。
環境
- Cloud上のJenkins
- Harbor
ざっくりテストJobの流れ
- localにあるdocker imageをHarborに上げる
- HarborのimageをJenkinsのジョブ内で呼ぶ
- Containerを起動させてテストを実行
MySQL Containerが立ち上がらない
MySQL Containerが全然立ち上がっていなかったようで、Jobがすぐ落ちてしまっていました。
そこでContainerがどのような状態なのか確かめるためにidを出してみると、このようなエラーが返ってきていました。
docker.image(MYSQL_IMAGE).withRun(runArgs(mysqlContainer)) { c ->
docker.image(env.PHP_IMAGE).inside(runArgs(phpContainer)) {
sh "docker logs ${mysqlContainer.id}"
}
}
# Log
standard_init_linux.go:190: exec user process caused "exec format error"
調べてみると、どうやらM1 Macで作成したイメージでは起動できなかったのが問題だったようです(arm64でした)。おそらく同僚があげてくれていたので、同僚のパソコンのプロセッサーがM1だったのでしょう。
詳しくはこちらを参考にしました。
解決方法
私のPCはM1ではなかったので、HarborにMySQL imageを上げなおしました。amd64になったので、先程のエラーは解決しました🥳
おわりに
次回はMySQL Containerが立ち上がったはずなのに動いていない問題について書こうと思います。
参考になれば幸いです🍎