GitLab CI のジョブ実行環境として Docker イメージ composer:2
を使っていたのですが、 make: /bin/sh: Operation not permitted
というエラーによりジョブの途中で停止していました。単純な make
コマンドが実行できないようです。
この問題に関係するのは以下のようでした。
https://github.com/alpinelinux/docker-alpine/issues/146
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2
まとめると以下の状況です。
- Alpine 3.14.0 からシステムコール faccessat2 を使うようになったため、ホストOSで以下を必要とするようになった
- runc v1.0.0-rc93
- containerd.io 1.4.3-2 (DebianリポジトリのDockerの場合)か、Docker Desktop 3.3.0 (WindowsかMacのDockerの場合)に含まれる
- Docker 20.10.0 以上
- libseccomp 2.4.4 以上
- runc v1.0.0-rc93
弊社では、GitLab runner が動作しているサーバーの Docker バージョンを最新にしたらエラーが起きなくなりました。