CircleCI上Ubuntu映像的文件权限

2024-06-01 13:59:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉使用CircleCI。我有一个Python脚本,用来调用一些操作系统命令,比如

path = "/Users/Name/Dev"
os.makedirs(path)

cmds = ["cd path", "touch hello.txt"]
cmd = "; ".join(cmds)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT)

然而,当我试图访问一个目录时,我被一个PermissionError: [Errno 13] Permission denied: /Users/Name/Dev击中了。也不能cd,不能写,等等。这是在CircleCI上运行的,但在我的个人机器上运行良好

有什么想法可以试试吗?如何修复VM上的这些权限问题

CircleCI的config.yml设置如下所示:

  build-and-test:
    machine:
      resource_class: large
      image: ubuntu-****
    environment:
      CI_VARIABLE: "8.0.1"
    working_directory: ~/repo

Tags: pathnamedev命令脚本cmdhelloos
1条回答
网友
1楼 · 发布于 2024-06-01 13:59:37

我相信这是因为您试图在CircleCI机器的/中创建一组文件夹Users/Name/Dev。由于安全限制(可能是创建文件夹和写东西的权限),您不应该这样做

更好的方法是使用环境变量在主文件夹中创建一个文件夹Dev,如下所示:

path = os.path.join(os.environ['HOME'], 'Dev')
os.makedirs(path)

cmds = ["cd '" + path + "'", "touch hello.txt"]
cmd = "; ".join(cmds)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT)

这样,您将始终为用户获得一个可写文件夹,因为它始终是主文件夹

相关问题 更多 >