具有自定义 docker 映像的 Jenkins 代理未运行。错误:“容器未运行”

问题描述 投票:0回答:1

总结:在树莓派、Linux debian 上,当我尝试使用 jenkins 代理映像“jenkins/agent:jdk11”时,它工作正常。但如果我尝试从 dockerhub 中提取自己的映像(字面意思相同),它会给我错误“java.io.IOException:容器未运行。”

更详细的问题:我尝试学习詹金斯。我在带有 Linux debian 的树莓派上的 docker 容器中使用 jenkins master,并尝试使用与 socat do docker daemon 连接的 jenkins 代理。

当它工作时:如果我使用官方docker镜像jenkins/agent:jdk11,我可以制作hello world。

问题出在哪里:我需要我自己的带有c++工具的图像。首先,我构建最简单的、使用 dockerfile 创建的图像,无需工具:

FROM jenkins/agent:jdk11

USER jenkins

但是现在我在 jenkins 中遇到了问题,因为当我尝试使用 dockerhub 中的图像构建简单的自由式项目时,出现错误:

java.io.IOException: Container is not running.
    at io.jenkins.docker.connector.DockerComputerConnector.createLauncher(DockerComputerConnector.java:195)
    at com.nirima.jenkins.plugins.docker.DockerTemplate.doProvisionNode(DockerTemplate.java:754)
    at com.nirima.jenkins.plugins.docker.DockerTemplate.provisionNode(DockerTemplate.java:682)
    at com.nirima.jenkins.plugins.docker.DockerCloud$1.run(DockerCloud.java:414)
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
    at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
    at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)

我尝试过的:当我在 Windows 电脑上以相同的方法使用 jenkins 时,一切正常。我可以打个招呼,世界。但我需要Linux。

我不知道问题出在哪里。 有什么建议吗?

docker jenkins cicd jenkins-agent
1个回答
0
投票

解决方案: 在 dockerhub 上,写到我在 linux mint 上构建的镜像具有 ARM64 架构。 但是当我尝试在我的树莓派上使用 Linux 运行这个图像时,我收到了错误:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

当我构建新映像时,使用 ARM64 它可以工作:

docker buildx build --platform linux/arm64 -t your-dockerhub-username/yourimagename:yourtag .
© www.soinside.com 2019 - 2024. All rights reserved.