はじめに
- GitLab RunnerでQEMUを使った際にエラーが出たのでその対策のメモ
環境
- GitLab Runner
- QEMU (qemu-user-static)
解決したい問題
- GitLab Runner上で、QEMUを使ってクロスコンパイルする際に、sh:write errorが出て、CIが止まってしまう問題
解決策
Dockerビルドの例
docker-build:
stage: build
before_script:
- QEMU_COMMAND="docker run --rm --privileged multiarch/qemu-user-static --reset -p yes"
- until ${QEMU_COMMAND};do sleep 1;done
script:
- docker buildx build .
- ポイント
- before_scriptで、qemu-user-staticの実行コマンド「
docker run --rm xxx
」を成功するまで繰り返す。
- before_scriptで、qemu-user-staticの実行コマンド「
まとめ
qemu-user-staticの実行コマンド「docker run --rm xxx
」を成功するまで繰り返すことで、エラーを回避できた。
参考