我的 CI 作业以 root 身份创建__pycache__,下次运行时无法清理工作区



我的 Jenkins CI 作业从 Git 中签出一个 Python 项目,构建应用程序,运行一些测试,然后将应用程序部署到服务器。

通常,我会设置 CI 作业以在每次运行之间擦除工作区。

不知何故,工作区现在包含一个由 root 拥有的__pycache__文件夹。我不知道 root 是如何设置为所有者的(具有 755 个权限(,但无论如何我无法再擦除工作区。我不确定在第一种情况下,Jenkins 和 Python 如何使文件由 root 拥有,但还没有研究过这个问题,但猜测这是一个合乎逻辑的解释。

其他Python人如何处理这个问题?有没有办法让这个文件夹归运行 Jenkins 的用户所有,以便 Jenkins 可以擦除工作区?

编辑:我应该提到我在Docker容器中运行Python应用程序。

通过确保 docker 容器中的用户与我的主机用户具有相同的 UID/GID,找到了解决方案/解决方法,如下所示: https://medium.com/redbubble/running-a-docker-container-as-a-non-root-user-7d2e00f8ee15。

最新更新