gpt4 book ai didi

docker - 无法使用Jenkins的kubernetes-plugin构建docker镜像

转载 作者:行者123 更新时间:2023-12-02 21:06:07 28 4
gpt4 key购买 nike

我正在使用kubernetes-plugin,并且在在K8S pod顶部构建docker镜像时遇到一些问题:

我正在使用以下方法创建POD:

podTemplate(containers: [
containerTemplate(
name: 'docker-build',
image: 'docker',
command: 'cat',
ttyEnabled: true
)
],
volumes: [
hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock')
])
{
node(POD_LABEL) {
stage("Checkout") {
dir("${env.WORKSPACE}/code") {
script {
// Checkout - Works
}
}
}

stage ('Build docker images') {
container('docker-build') {
dir("${env.WORKSPACE}/code") {
sh """
./build-images
"""
}
}
}
}
}

但是它在docker build步骤上失败了:
Err:1 http://deb.debian.org/debian stretch InRelease
Temporary failure resolving 'deb.debian.org'
Err:2 http://security.debian.org/debian-security stretch/updates InRelease
Temporary failure resolving 'security.debian.org'
Err:3 http://deb.debian.org/debian stretch-updates InRelease
Temporary failure resolving 'deb.debian.org'
Reading package lists...
[91mW: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/InRelease Temporary failure resolving 'security.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/InRelease Temporary failure resolving 'deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
[0mReading package lists...
Building dependency tree...
Reading state information...
[91mE: Unable to locate package libpam-dev
E: Unable to locate package libpcap0.8-dev
E: Couldn't find any package by glob 'libpcap0.8-dev'
E: Couldn't find any package by regex 'libpcap0.8-dev'
E: Unable to locate package libpq5[0m[91m
E: Unable to locate package libtins-dev
E: Unable to locate package openjdk-8-jdk-headless
E: Unable to locate package python3

当使用 kubectl exec访问POD并尝试进行构建时,它因相同的错误而失败:
docker build -t my_test .

当尝试使用 --network=host 构建相同的文件时,它可以使用:
docker build --network=host -t my_test .

我试图理解为什么它需要 --network=host才能起作用。

顺便说一句-当我在Jenkins从属Pod中并且尝试下载任何软件包或访问Internet时,一切都很好,只有当我尝试构建Docker镜像并在此期间尝试下载软件包时,它才会发生处理。

我怀疑 docker build失败是由于某些网络配置错误,或者docker网络在docker之上的docker构建期间处于错误状态。

到目前为止,我已经尝试过:
  • 使用hostNetwork: true创建pod,但没有帮助。
  • 使用privileged: true创建pod,但没有帮助。
  • 许多其他黑客使Pod在不同的网络上运行,但也没有帮助。

  • 请协助。

    最佳答案

    默认情况下,最新版本的经AWS EKS优化的AMI禁用了docker bridge网络。要启用它,请将bootstrap_extra_args参数添加到您的工作组模板中。 Source

    关于docker - 无法使用Jenkins的kubernetes-plugin构建docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57943783/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com