BEIKE blog

備忘録です

dockerを用いたCIでのエラーについて(Process completed with exit code 137.)

概要

dockerを使ってCI回せば、CIで回ってるdockerコンテナは自分のPC環境でも試せるし良いことたくさんですよね。しかし、何も知らずに使うとエラー(Process completed with exit code 137.)に悩まされます。。。ということで、Process completed with exit code 137.について備ぼります。

エラー(Process completed with exit code 137.)について

このエラーは

docker start hogehoge
docker ps
docker exec 123456 /bash -c "roslaunch hoge hoge; sleep15"

とかをGitHub Actions上で実行すると出てきます。(hogeは例です。execのid番号も例です。)

エラーについて調べると、メモリー不足やら何やら出てきます。 そこで使用メモリーについてコマンドにて確認してみましたが、十分余裕が有り問題ありませでした。

他に調べていると、どうやらdocker runだとPID1で実行したいコマンドを実行できて、docker execだとPID1で実行したいコマンドが実行できないことから、GitHub Actionsでは勝手に異常終了させられる事がわかりました。(多分)

なので異常終了させられないためには、docker run のみを使用してPID1でスクリプト等を実行する。 あるいは、docker execでもPID1でコマンドを実行できるようにする必要が有ります。

おわりに

何か間違っていたり有益な情報をお持ちでしたら教えて頂けると助かります。

解決法

何気にアクセス数が多かったので、追記します。 --initオプションをつけると怒られなくなります。

docker run --init