【问题标题】:GitHub Actions workflow error: Permission deniedGitHub Actions 工作流程错误:权限被拒绝
【发布时间】:2020-01-09 19:48:40
【问题描述】:

我正在运行 GitHub Actions 工作流程,但它失败并出现以下错误。

Unhandled exception:
FileSystemException: Cannot create file, path = '/github/home/.flutter' (OS Error: Permission denied, errno = 13)

我查看了Workflow syntax for GitHub Actions,但找不到任何解决此问题的说明。

我的构建文件如下所示:

name: Flutter CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    container:
      image:  cirrusci/flutter:v1.7.8-hotfix.4

    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: flutter pub get
      working-directory: my_app
    - name: Run tests
      run: flutter test

【问题讨论】:

标签: docker github-actions


【解决方案1】:

终于有时间看了一下,加上sudo解决了。

图像以用户cirrus 运行。还需要提供完整路径:

sudo /home/cirrus/sdks/flutter/bin/flutter pub get

来自 GitHub docs

Linux 和 macOS 虚拟机都使用无密码 sudo 运行。 当您需要执行命令或安装需要更多功能的工具时 权限高于当前用户,您可以使用 sudo 而无需 提供密码。

【讨论】:

    【解决方案2】:

    除了将 sudo 添加到所有失败的步骤之外,您还可以只修改容器配置:

    container:
      image:  cirrusci/flutter:v1.7.8-hotfix.4
      options: --user root
    

    说明:问题是由于 cirrusci/flutter:v1.7.8-hotfix.4 映像上的默认用户无权访问由 github 挂载到此 docker 映像中的某些目录。包括给您带来麻烦的/github 目录。将options: --user root 添加到容器配置中可确保默认用户成为root,这样您就无需在每一步都使用sudo。

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 1970-01-01
      • 2019-10-30
      • 2018-05-08
      • 1970-01-01
      • 2013-12-09
      • 2012-10-08
      相关资源
      最近更新 更多