Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jenkinsfile中的Docker代理在输出日志中未找到正确的语法和命令错误_Java_Docker_Jenkins Pipeline - Fatal编程技术网

Java Jenkinsfile中的Docker代理在输出日志中未找到正确的语法和命令错误

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

我检查了其他帖子,但它们不是我的问题所代表的。 我正在学习Linuxacademy的“Jenkins认证工程师”课程,在“功能测试”课程中,我们在Jenkins文件中添加了一个docker代理,其中包含一些步骤,但我对使用的语法与Jenkins官方管道文档中描述的语法感到困惑。 Jenkins试图实现的是使用CentOS在Jenkins节点上的.jar文件上运行测试,但测试需要在Debian操作系统上运行,为了在CentOS节点上执行此操作,Jenkins文件有一个带有Docker代理和命令的stage,该命令从Dockerhub中提取openjdk映像并在其中运行一些命令。 这是来自的语法:

注意,我简化了文件以匹配正在进行的工作,这是最终版本,但重点是代理行。 我的第一个问题是Jenkins文档语法与这里使用的不同,但是在课程视频中,它运行时没有问题,正确的语法应该是
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"