docker - 在安装在 docker 中的 jenkins 上运行脚本时出错
问题描述
我正在尝试在安装在 docker 中的 jenkins 上执行脚本。
我的 Docker-compose 是:
version: '3.7'
services:
jenkins:
image: jenkins/jenkins:lts
privileged: true
user: root
ports:
- 8081:8080
- 50000:50000
container_name: jenkins
volumes:
- /c/Users/cpaez/Documents/Automation/MOM/JSFiles:/usr/bin/docker
- $HOME/.jenkins/:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
我的 Dockerfile 是:
FROM jenkins/jenkins
USER SYSTEM
RUN apt-get -y update && apt-get install -y maven
USER SYSTEM
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
当我尝试执行执行 shell 命令行的作业时:
./run.sh
我得到:
Started by user Carolina
Running as SYSTEM
Building in workspace C:\Users\cpaez\Documents\Automation\MOM\JSFiles
[JSFiles] $ /bin/sh -xe /tmp/jenkins7092419659009271524.sh
+ ./run.sh
/tmp/jenkins7092419659009271524.sh: 2: /tmp/jenkins7092419659009271524.sh: ./run.sh: not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我将工作区更改为 C:\Users\cpaez\Documents\Automation\MOM\JSFiles (我的脚本在哪里),并尝试将全局变量 PATH 赋值为 = C:\Users\cpaez\Documents\Automation\MOM\JSFiles在詹金斯并获得了相同的结果。
任何人都可以帮助我吗?先感谢您
解决方案
我猜你正在尝试在 windows 系统上执行 shell 脚本,而 windows 不支持执行 shell 文件。请尝试执行bat文件
或者你可以试试我在网上找到的这个
据我所知,Windows 不支持开箱即用的 shell 脚本。您可以为 Windows 安装 Cygwin 或 Git,转到 Manage Jenkins > Configure System Shell 并将其指向在其安装中找到的 sh.exe 文件的位置。
例如:C:\Program Files\Git\bin\sh.exe
https://discuss.devopscube.com/t/it-doesnt-recognize-shell-script-syntax/638
推荐阅读
- javascript - 我应该从哪里调用 module.exports 来获取非空值?
- amazon-web-services - 如何为 lambda serverless 创建子域?
- php - 在 SQL 中获取用户的最后一笔付款
- php - 显示房地产列表结果的问题
- node.js - Sequelize 小数点数据保存 2 个小数点
- python - 如何根据前一个任务的结果在 SubDAG 中真正创建 n 个任务
- javascript - 来自文件输入的文件和使用构造函数创建的文件之间有什么区别吗?
- sql-server - FK 列上的索引
- python - Python 3 中的 UTF-16 编码和日语
- node.js - 从节点 JS 执行 POST 时无法验证第一个证书错误