Отладить эту ошибку CircleCI / Docker bash (скрипт не найден)?

Я пытаюсь запустить сценарий install_chrome.sh внутри сборки CircleCI. Я использую этот образ Docker. Я не создавал образ, он просто содержит две необходимые мне зависимости (Node и ffmpeg).

Образ отлично устанавливается через CircleCI, но затем этап сборки install_chrome.sh завершается ошибкой. Этот шаг сборки не завершается ошибкой со "стандартным" образом NodeJs CircleCI, для справки.

Вот мой 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

И вот результат:

введите здесь описание изображения

Что могло происходить? Основываясь на этих отладках, я определенно нахожусь в нужном каталоге, и мой исходный код определенно находится там. Это проблема пользователя? В чем проблема?


person john maccarthy    schedule 29.01.2018    source источник


Ответы (1)


Вы используете ash, а не bash.

ash будет печатать «не найдено» всякий раз, когда execve() возвращает ENOENT, что может произойти по любой из следующих причин:

  1. Файл не существует
  2. Интерпретатор файла не существует
  3. Динамический загрузчик интерпретатора файла не существует

Поскольку вы подтвердили, что файл действительно существует, посмотрите на shebang вашего скрипта с помощью:

head -n 1 install_chrome.sh

и убедитесь, что исполняемый файл, на который он указывает, установлен и доступен по этому пути.

Если он у вас есть на этом пути, убедитесь, что вы можете выполнить его отдельно.

person that other guy    schedule 29.01.2018