Java Jenkinsfile中的Docker代理在输出日志中未找到正确的语法和命令错误
我检查了其他帖子,但它们不是我的问题所代表的。 我正在学习Linuxacademy的“Jenkins认证工程师”课程,在“功能测试”课程中,我们在Jenkins文件中添加了一个docker代理,其中包含一些步骤,但我对使用的语法与Jenkins官方管道文档中描述的语法感到困惑。 Jenkins试图实现的是使用CentOS在Jenkins节点上的.jar文件上运行测试,但测试需要在Debian操作系统上运行,为了在CentOS节点上执行此操作,Jenkins文件有一个带有Docker代理和命令的stage,该命令从Dockerhub中提取openjdk映像并在其中运行一些命令。 这是来自的语法: 注意,我简化了文件以匹配正在进行的工作,这是最终版本,但重点是代理行。 我的第一个问题是Jenkins文档语法与这里使用的不同,但是在课程视频中,它运行时没有问题,正确的语法应该是Java Jenkinsfile中的Docker代理在输出日志中未找到正确的语法和命令错误,java,docker,jenkins-pipeline,Java,Docker,Jenkins Pipeline,我检查了其他帖子,但它们不是我的问题所代表的。 我正在学习Linuxacademy的“Jenkins认证工程师”课程,在“功能测试”课程中,我们在Jenkins文件中添加了一个docker代理,其中包含一些步骤,但我对使用的语法与Jenkins官方管道文档中描述的语法感到困惑。 Jenkins试图实现的是使用CentOS在Jenkins节点上的.jar文件上运行测试,但测试需要在Debian操作系统上运行,为了在CentOS节点上执行此操作,Jenkins文件有一个带有Docker代理和命令的s
agent{
docker{image'openjdk:8u121 jre'}
}
我的第二个问题是,当我使用一种或另一种语法时,我也使用openjdk:7u181 jre,因为课程中的一种不再可用,我在控制台日志输出中得到以下错误:
如果需要,请转到节点终端并手动运行
docker运行openjdk:7u181 jre
它工作正常,我以非sudo用户的身份运行它
我也不明白docker命令在Jenkins文件中的作用:它是在拉容器之后运行容器,还是只是拉容器
知道发生了什么事吗?
谢谢。1)请在Jenkins服务器中安装docker
2) 请通过运行下面的命令更改Jenkins和docker的用户模式,并重新启动Jenkins和docker,现在您将能够访问
sudo usermod-aG docker jenkins服务器用户名
sudo systemctl重新启动docker
sudo systemctl重新启动jenkins
要安装Jenkins:
要安装Docker:
注意:已在ubuntu服务器上验证
stage("Test on Debian") {
agent {
docker 'openjdk:8u121-jre'
}
steps {
sh "wget http://brandon4231.mylabserver.com/rectangles/all/rectangle_${env.BUILD_NUMBER}.jar"
sh "java -jar rectangle_${env.BUILD_NUMBER}.jar 3 4"