我想要达到的目标:能够从运行在kubernetes (jnlp)上的jenkins管道中将码头映像推送到(不安全的)手工码头回购。
我正在尝试什么:,我在jenkins上使用kubernetes插件(运行在k8s上),它运行的是docker:dind容器作为从代理。当我推送它时,它会出现证书错误(x509),因为它是一个不安全的工件回购。因此,为了推进到不安全的工件,我想更新--不安全的注册中心--在码头客户端的daemon.json中。
但不幸的是,即使在更新了docker:dind中的daemon.json之后,它也不会生效,因为使用的对接客户端来自运行k8s的底层节点。(在我的例子中是minikube)和docker:dind被用作守护进程。
因此,我无法在docker客户端中添加我的工件回购--不安全--注册中心,除非我在k8s集群码头客户端上更新k8s(在minikube上)。
我想要做的事情:因此,我想将客户端从k8s节点(Minikube)更改为在kubernetes插件中运行的另一个接口服务器,在那里我可以配置daemon.json。你能帮我吗?或者请提出更好的方法来解决这个问题。
发布于 2020-08-07 00:03:48
您可以让jnlp从服务器使用您的主机的停靠守护进程,而不是使用/var/run/docker.sock
。然后,您可以编辑主机的/etc/docker/daemon.json
以添加不安全的注册表。
假设在管道中定义jnlp-从模板,则可以:
pipeline {
agent {
kubernetes {
yaml """
apiVersion: v1
kind: Pod
metadata:
label:
jenkins: slave
spec:
containers:
- name: jnlp
image: registry/jnlp-slave:latest
volumeMounts:
- name: docker
mountPath: /var/run/docker.sock
volumes:
- name: docker
hostPath: { path: /var/run/docker.sock }
"""```
https://stackoverflow.com/questions/63268433
复制相似问题