我的本地计算机上有一个泊坞窗图像。当我尝试使用下面的Jenkins文件运行图像时。
agent {
docker {
image 'gcc/sample:latest'
args "-v /etc/passwd:/etc/passwd:ro
}
}
然后我收到以下错误。
+ docker pull gcc/sample:latest
Pulling repository docker.io/gcc/sample
Error: image gcc/sample:latest not found
script returned exit code 1
我有什么方法可以在Jenkins文件中查找我的本地机器上的docker镜像而不是docker.io中的docker image。
答案 0 :(得分:4)
为此,您需要在本地计算机上或Jenkins运行的Jenkins服务器上使用docker注册表。 只需运行docker注册表容器
docker run -d -p 5000:5000 --restart always --name registry registry:2
首先标记您的图片
docker tag alpine localhost:5000/gcc/sample:latest
将该图像推送到本地docker注册表
docker push localhost:5000/gcc/sample:latest
现在,如果你想在jenkins中提取这个docker图像,那么给dns拉出路径,因为我们从docker注册表中提取了一些内容,其中包含dns的全名。
docker pull localhost:5000/gcc/sample:latest
注册表是一个存储和内容交付系统,包含名为Docker的图像,提供不同的标记版本。
docker pull ubuntu指示docker从官方Docker Hub中提取名为ubuntu的图像。这只是较长的docker.dir/library/ubuntu命令
的快捷方式docker pull myregistrydomain:port / foo / bar指示docker联系 注册表位于myregistrydomain:port以查找图像 富/酒吧
运行自己的注册表是一个很好的解决方案,可以与和集成 补充您的CI / CD系统。
答案 1 :(得分:0)
原来这已经是一个已知问题:https://issues.jenkins-ci.org/browse/JENKINS-47106
始终在代理程序定义中提取泊坞窗图像。在此期间,唯一的解决方案是将图像推送到Dockerhub或私人注册,以便成功拉出。
答案 2 :(得分:0)
在我们的环境中,出于某些原因,使用并行级会阻止拉动动作。
#!/usr/bin/env groovy
pipeline {
agent none
options {
timestamps()
}
stages {
stage('Parallel') {
parallel {
stage('EL6') {
agent {
docker {
image 'centos6'
label 'Docker&&EL'
}
}
steps {
...
}
}
}
}
}
}
背景:我们通常使用具有并行步骤的多分支管道作业。在测试新东西时,我写了最简单的利用docker的Jenkinsfile。我使用了一个没有并行段的简单Pipeline作业,并注意到它总是尝试进行拉(失败)。
相关插件:
Docker Commons Plugin
Provides the common shared functionality for various Docker-related plugins.
1.11
Downgrade to 1.11
Docker Pipeline
Build and use Docker containers from pipelines.
1.15
Pipeline: API
Plugin that defines Pipeline API.
2.28
Downgrade to 2.25
Pipeline: Basic Steps
Commonly used steps for Pipelines.
2.6
Pipeline: Declarative
An opinionated, declarative Pipeline.
1.2.7
Pipeline: Declarative Agent API
Replaced by Pipeline: Declarative Extension Points API plugin.
1.1.1
Pipeline: Declarative Extension Points API
APIs for extension points used in Declarative Pipelines.
1.2.7
Pipeline: Job
Defines a new job type for pipelines and provides their generic user interface.
2.17
Pipeline: Model API
Model API for Declarative Pipeline.
1.2.7
Pipeline: Stage Step
Adds the Pipeline step stage to delineate portions of a build.
2.3
Pipeline: Stage Tags Metadata
Library plugin for Pipeline stage tag metadata.
1.2.7
Pipeline: Stage View Plugin
Pipeline Stage View Plugin.
2.9
Pipeline: Step API
API for asynchronous build step primitive.
2.16
Downgrade to 2.14
Pipeline: Supporting APIs
Common utility implementations to build Pipeline Plugin
2.17