github - Github Actions 无法写入文件,权限被拒绝(在 docker 容器内)
问题描述
我正在使用 ZAP Dockerfile 映像[2] 来扫描应用程序中的漏洞。以下是我在 Github 上的操作。
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: run zap
uses: docker://owasp/zap2docker-stable
with:
args: zap-baseline.py -t https://www.example.com
所以基本上这张图片有一个名为 /home/zap/ 的文件夹,它正在尝试将一个文件写入这个位置。我不明白为什么 Github 的行为会IOError: [Errno 13] Permission denied:
在 docker 容器中持续存在。容器正在使用zap
用户。有没有其他人在 Github Actions 中遇到过类似的文件写入权限问题?
[2] - https://github.com/zaproxy/zaproxy/blob/develop/docker/Dockerfile-stable
解决方案
如果 docker 使用另一个用户,那么我们在持久化到本地目录时会遇到权限问题。以下是我用来解决此问题的配置:
name: ZAP
on: push
jobs:
scan:
runs-on: ubuntu-latest
container:
image: owasp/zap2docker-stable
options: --user root -v ${{ github.workspace }}:/zap/wrk/:rw
steps:
- run: pwd && ls -l
- name: run zap baseline scan
run: zap-baseline.py -t https://example.com -x report_xml.xml || echo 0
在这里,我们通过 options 参数覆盖用户。
推荐阅读
- javascript - javascript fetch - SAMLResponse 的自动表单提交
- python - 在 Pandas 中仅移动选定的行
- vue.js - vue axios.get 从 imgur 获取图像
- react-hooks - 使用覆盖其他组件样式的 react-planet 时组件中有多个 jss
- javascript - 我如何创建一个函数,它接受一个参数 - 一个数字,并从 1 -> 数字返回数字的总和 - 而不创建无限循环?
- reactjs - 在 React Native 中将文本与按钮组件合并
- react-native - 你如何在 react-native-elements 中设置一个元素的样式/主题?
- react-native - 如何在 Sentry 中为 React Native 获得良好的堆栈跟踪?
- python - Fabric fab 命令未在本地记录或运行
- sql - 连接具有多列的表