Я видел этот вопрос, но я работаю на RHEL 7.3, а не на Windows.
С помощью этого простого сценария оболочки Jenkins:
#!/bin/bash
echo $PATH
echo $HOME
source /app/local/anaconda3/bin/activate py35_myenv
Я получаю эту ошибку:
$ /bin/bash /tmp/jenkins5945453203311093000.sh
/sbin:/usr/sbin:/bin:/usr/bin:/opt/teradata/client/15.10/bin:/app/local/anaconda3/bin:/opt/teradata/client/15.10/bin:/app/local/anaconda3/bin
/home/jenkins
/tmp/jenkins5945453203311093000.sh: line 4: /app/local/anaconda3/bin/activate: Permission denied
Я пытался chmod
перевести файл /app/local/anaconda3/bin/activate
в 664 (изначально был 660), но это не помогло. Также пробовал chmod -R o+rx /app/local/anaconda3/envs/py35_myenv
(исполняемые файлы там были изначально 770, сейчас 775). Это также не помогло. Причина, по которой я попытался это сделать, заключается в том, что я получаю жалобы «Отказано в доступе», а пользователь jenkins
на этом компьютере не принадлежит к группе, в которой находятся эти файлы Anaconda.
Я попытался добавить #!/bin/bash
в начало моего сценария Дженкинса, согласно предложению здесь , но это не помогло.
Обычные пользователи, не являющиеся пользователями Jenkins, могут нормально активировать эту среду conda. Я пытаюсь, чтобы Jenkins запускал автоматические сценарии из этой среды, но не могу активировать его в задании Jenkins.
РЕДАКТИРОВАТЬ: Если я не предоставил полный путь к activate
, я получаю жалобы «активировать: нет такого файла или каталога».
РЕДАКТИРОВАТЬ: причина activate
получает chmod
из 664 (неисполняемый) указано в этот ответ . activate
должен быть неисполняемым и запускаться через source
, чтобы он мог вносить изменения в среду.
версия Jenkins: 2.129-1.1