首页 > 解决方案 > 在安装在 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在詹金斯并获得了相同的结果。

任何人都可以帮助我吗?先感谢您

标签: dockerjenkinsdocker-composedockerfile

解决方案


我猜你正在尝试在 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


推荐阅读