【问题标题】:Permission denied when creating locust report inside docker container在 docker 容器内创建蝗虫报告时权限被拒绝
【发布时间】:2021-06-07 09:34:47
【问题描述】:

我目前正在尝试在 docker 容器中运行 locust,它适用于除创建 html/csv 报告之外的所有内容。

这就是我所做的:

我创建了自己的扩展 locust 的扩展文件(并且只复制我的文件):

FROM locustio/locust

COPY . /test/

WORKDIR /test

然后我像这样运行蝗虫测试:

docker run --name test -p 8089:8089 LocustImage -f src/tests/create_tests.py --run-time 30s --users 1 --spawn-rate 1 --html loadReport.html

但是当我运行它时,我得到:

2021-06-07T08:28:15.6966999Z Traceback (most recent call last):
2021-06-07T08:28:15.6967735Z   File "/usr/local/bin/locust", line 8, in <module>
2021-06-07T08:28:15.6968335Z     sys.exit(main())
2021-06-07T08:28:15.6969642Z   File "/usr/local/lib/python3.8/site-packages/locust/main.py", line 429, in main
2021-06-07T08:28:15.6970610Z     with open(options.html_file, "w", encoding="utf-8") as file:
2021-06-07T08:28:15.6971572Z PermissionError: [Errno 13] Permission denied: 'loadReport.html'

我也尝试过添加这样的卷:

docker run --name test -p 8089:8089 --volume /home/vsts/work/r1/a/report:/test/report LocustImage -f src/tests/create_tests.py --run-time 30s --users 1 --spawn-rate 1 --html /test/report/loadReport.html

但仍然是同样的问题。有人知道我做错了什么吗?还没有找到任何如何在 docker 中使用 locust 获取报告的好例子。

【问题讨论】:

  • 很确定您的问题是您需要提供loadReport.html 文件的完整路径,而不仅仅是文件名。

标签: python docker locust


【解决方案1】:

现在弄清楚(或至少找到解决方案)。

但首先,--volume 不起作用的问题似乎是因为 azure devops。不知何故,当我在云中运行它时它不起作用,但如果我在本地计算机上使用 --volume 它就可以正常工作。

但最后我只是在我的 docker 文件中完成了这个修复:

FROM locustio/locust

COPY . /test/

USER root

RUN mkdir -p /test/report

WORKDIR /test

我读到大多数人建议您不应该使用 root,但至少它可以工作并且认为在这种情况下没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2019-01-06
    • 2018-04-23
    • 2022-01-12
    • 2018-12-15
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多