[英]Unable to pip install in Docker image as agent through Jenkins declarative pipeline
[英]Jenkins always pull docker image from a declarative pipeline agent definition
我有一个使用agent {any}
定义的工作 Jenkins 管道。
但我想尝试在 docker 镜像上运行测试。 根据文档,我可以通过以下方式做到这一点:
pipeline {
agent {
docker { image 'centos/python-27-centos7:latest' }
}
stages {
...
}
}
问题是我的 Jenkins 实例处于离线状态,使用此配置,它会在运行项目时尝试docker pull
图像。
但是,我在 docker 中加载了 centos/python-27 图像(通过docker images
可见,它可以通过docker run -i -t centos/python-27-centos7 /bin/bash
有什么方法可以在 Jenkins 中配置代理,使其不会尝试从 Docker Hub 中pull
图像?
您可以尝试使用 dockerfile 代理。 如果构建映像所需的一切都是本地的,那么您就不必在线了。
pipeline {
agent {
dockerfile {
filename "someOtherDockerfile"
label "docker-nodes"
args "-v /tmp:/tmp"
}
}
stages {
...
}
您的另一个选择可能是设置私有 docker 注册表。 https://docs.docker.com/registry/deploying/
你应该我们兄弟姐妹而不是嵌套的容器图像。 即尝试通过-v /var/run/docker.sock:/var/run/docker.sock
将 docker 守护进程套接字的卷挂载到 Jenkins 容器。 这样,您就可以访问主机系统上可用的图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.