【问题标题】:circleci permission denied error when using machine executor使用机器执行器时circleci权限被拒绝错误
【发布时间】:2020-10-07 13:46:22
【问题描述】:

我想使用机器执行器,以便我可以使用 docker-compose 运行一些组件测试。我的工作流程在结帐步骤失败并抛出此错误:Making checkout directory "/opt/my-app" Error: mkdir /opt/my-app: permission denied

这是我工作流程中 component_test 阶段的 yaml:

component_test:
  machine: true
  working_directory: /opt/my-app
  steps:
    - checkout

如果我使用 docker 而不是机器执行器,那么我不会遇到任何权限问题:

component_test:
  machine: true
  working_directory: /opt/my-app
  steps:
    - checkout

但是,我希望能够使用 docker-compose,因此需要能够运行机器执行程序。有没有人见过这样的权限问题?

【问题讨论】:

    标签: circleci circleci-workflows


    【解决方案1】:

    您需要将工作目录更改为 /home/circleci 中的内容,或者将其完全排除,因为它是可选的。

    现在,circleci 用户运行 checkout 步骤,它没有权限 git clone 到您选择的工作目录。

    另外,我不会使用machine: true,因为它已被弃用。指定图片:https://circleci.com/docs/2.0/configuration-reference/#available-machine-images

    【讨论】:

    • 我不会说机器类型已被弃用,因为圈子没有这么说。如果您需要启动多个相互通信的 docker 容器以及您的容器、操作网络堆栈等,则机器类型是必需的。
    • 类型/键未被弃用。不推荐使用 machine: true 而不是 machine 然后指定图像。我在 CircleCI 工作,我是那个弃用它的人。我同意您对为什么使用机器执行器的评估。我否认。只需指定一个图像,而不是使用 true 的值。
    猜你喜欢
    • 2018-02-22
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2018-05-11
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多