概要
Github Actionsのテストとして,以下のWorkflowファイル(main.yml)を作成してWorkflowを実行した.
name: Compile on: push: branches: ["main"] workflow_dispatch: jobs: sage: runs-on: ubuntu-latest container: image: sagemath/sagemath steps: - uses: actions/checkout@v3 - name: version run: sage -v
するとactions/checkout@v3
に失敗する.
Post job cleanup. /usr/bin/docker exec 4f4b8f6200c8af9463ccb9eb4a1d45628889e407b6251ad240fd3849ba23e483 sh -c "cat /etc/*release | grep ^ID" node:internal/fs/utils:345 throw err; ^ Error: EACCES: permission denied, open '/__w/_temp/_runner_file_commands/save_state_1c6493c4-3253-48d6-8cd7-2a20bc7a1a16' at Object.openSync (node:fs:585:3) at Object.writeFileSync (node:fs:2170:35) at Object.appendFileSync (node:fs:2232:6) at Object.issueFileCommand (/__w/_actions/actions/checkout/v3/dist/index.js:2945:8) at Object.saveState (/__w/_actions/actions/checkout/v3/dist/index.js:2862:31) at Object.8647 (/__w/_actions/actions/checkout/v3/dist/index.js:2321:10) at __nccwpck_require__ (/__w/_actions/actions/checkout/v3/dist/index.js:18251:43) at Object.2565 (/__w/_actions/actions/checkout/v3/dist/index.js:146:34) at __nccwpck_require__ (/__w/_actions/actions/checkout/v3/dist/index.js:18251:43) at Object.9210 (/__w/_actions/actions/checkout/v3/dist/index.js:1141:36) { errno: -13, syscall: 'open', code: 'EACCES', path: '/__w/_temp/_runner_file_commands/save_state_1c6493c4-3253-48d6-8cd7-2a20bc7a1a16' }
エラーが発生したDockerイメージ
具体的には,以下のイメージを使用したところEACCES: permission denied
エラーが出た.
- computop/sage
- sagemath/sagemath
解決
どちらのイメージも起動時の初期ユーザがroot権限ではないことが原因だった.
https://github.com/actions/checkout/issues/956
上のリンクにあるように,optionsを追加してroot権限で実行するように設定するとうまくいった.
container: image: alpine:latest options: --user root # これを追加!