调试此CircleCI / Docker bash错误(找不到脚本)?

时间:2018-01-29 20:14:03

标签: node.js linux bash continuous-integration circleci

我正在尝试在CircleCI构建中运行一个名为install_chrome.sh的脚本。我正在使用this Docker image。我没有制作图像,它只包含我需要的两个依赖项(Node和ffmpeg)。

图像通过CircleCI安装正常,但install_chrome.sh构建步骤失败。使用CircleCI“标准”NodeJs图像,此构建步骤不会失败,以供参考。

这是我的config.yml

version: 2
jobs:
  build:
    working_directory: ~/my-project
    docker:
      - image: rickydunlop/nodejs-ffmpeg
    steps:
      - checkout
      - run:
          name: Debug 1
          command: pwd
      - run:
          name: Debug 2
          command: ls
      - run:
          name: Install Chrome
          command: ${HOME}/${CIRCLE_PROJECT_REPONAME}/install_chrome.sh .google-chrome

这是输出:

enter image description here

可能发生什么事?根据这些调试,我肯定在正确的目录中,我的源代码肯定是坐在那里。这是用户问题吗?有什么问题?

1 个答案:

答案 0 :(得分:0)

您使用的是ash,而不是bash

只要ash返回ENOENT,

execve()就会打印“未找到”,这可能由于以下任何原因而发生:

  1. 该文件不存在
  2. 文件的解释器不存在
  3. 文件的解释器的动态加载程序不存在
  4. 由于您已确认该文件确实存在,请使用以下命令查看脚本的shebang:

    head -n 1 install_chrome.sh
    

    并确保它指向的任何可执行文件都已安装并在该路径上可用。

    如果你确实在该路径中有它,请检查是否可以单独执行它。