我使用Docker
以以下方式启动了一个新的Jenkins
服务器:
$ docker run -p 8081:8080 -p 50000:50000 -v "${PWD}"/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -d --name jenkins jenkins/jenkins:lts
我希望将其用于一个简单的流水线,执行一个构建另一个Docker容器的shell脚本。这就是为什么我也要挂载 docker.sock
的原因。但是,使用如下所示的Jenkinsfile:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo "####### builds: #######"
sh "(exit 1) || true # whatever I write here, it always fails"
}
}
}
}
I always get an error like:
Print Message -- ####### builds: ####### -- (self time 7ms)
####### builds: #######
Shell Script -- (exit 1) || true -- (self time 18s)
[X's Pipeline] Running shell script sh: 1: Syntax error: end of file unexpected (expecting "done")
process apparently never started in /var/jenkins_home/workspace/X's Pipeline@tmp/durable-f294beff
将sh
行替换为以下任何一行都会产生类似的错误消息,并导致构建过程失败:
sh "pwd;"
sh "echo 'hello';"
sh ./build.sh;"
sh ``` #!/bin/sh echo hello ```
- … I tried many more
但是当我删除sh
这一行后,构建成功了。
我之前在其他系统上也成功地完成过这个操作。这里有什么我漏掉的吗?
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.26.2.el7.x86_64
Architecture: x86-64
Docker version: 17.05.0-ce, build 89658be