当前位置: 首页 > 知识库问答 >
问题:

Jenkins管道异常-找不到Docker

韩经武
2023-03-14

我已经创建了GKE集群,并在该集群上安装了Jenkins。现在我正在运行管道,我已经创建了Jenkinsfile,用于构建DockerImage,但是当我运行管道时,它抛出了未找到Docker的异常

1)创建了GKE集群2)安装了Jenkins 3)添加了Docker集线器凭据4)添加了gitlab的访问密钥

JenkinsFile:

stage(“Build Docker Image”){当{branch“master”}在Docker运行之前执行步骤{script{echo“”sh“Docker--版本”app=Docker.build(“sarab321/test-pipeline”)echo“Docker运行成功”}}}

请看下面的例外情况

APIPversion:“v1”种类:“pod”元数据:注释:{}标签:Jenkins:“slave”Jenkins/CD-Jenkins-slave:“true”名称:“default-D7QDB”规范:容器:-参数:-“59C323186A77B4BE015362977EC64E4838001B6D77C0F372BE7CDA7CF93F9B2”-“default-D7QDB”env:-名称:“Jenkins_Secret”值:“59C323186A77B4BE015362977EC64E4838001B6D77C0B6D77C0B2”372Bec7CDA7CF93F9B2“-名称:”jenkins_tunnel“值:”cd-jenkins-agent:50000“-名称:”jenkins_agent_name“值:”default-d7qdb“-名称:”jenkins_name“值:”default-d7qdb“-名称:”jenkins_url“值:”http://cd-jenkins.default.svc.cluster.local:8080“映像:”jenkins/jnlp-slave:3.27-1“imagePullPolicy:”ifNotPresent“名称:”jnlp“资源:限制:内存:”512mi“CPU:”1“请求:内存:”256MI“CPU:”500M“SecurityContext:特权:false tty:false volumemounts:-mountpath:”/var/run/docker.sock“name:”volume-0“readonly:false-mountpath:”/home/jenkins“name:”workspace-volume“readonly:false workingdir:”/home/jenkins“nodeSelector:{}restart策略:“never”ServiceAccount:“default”volumes:-hostpath:path:“/var/run/docker.sock”name:“volume-0”-emptydir:media:“”name:“workspace-volume”

  • Docker版本/home/jenkins/workspace/testpipeline_master@tmp/durable-5dd73d2b/script.sh:1:/home/jenkins/workspace/testpipeline_master@tmp/durable-5dd73d2b/script.sh:docker:找不到

共有1个答案

庄飞
2023-03-14

Docker看起来并不是安装在构建代理上,而是使用“jenkins/jnlp-slave:3.27-1”映像在容器中。在jenkins LTS映像中安装docker CLI的示例如下:https://github.com/sudo-bmitch/jenkins-docker

该映像包括以下步骤以使docker集成可移植:

  • 安装Docker CLI
  • 安装gosu(由于入口点将以根用户身份启动,因此需要)
  • 将jenkins用户配置为docker组的成员
  • 包括一个入口点,该入口点调整为docker GID,以匹配/var/run/docker.sock GID
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
 && add-apt-repository \
     "deb [arch=amd64] https://download.docker.com/linux/debian \
     $(lsb_release -cs) \
     stable" \
 && apt-get update \
 && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
    docker-ce-cli${DOCKER_CLI_VERSION}

您可以使用entrypoint.sh和Dockerfile,修改Dockerfile的基映像(FROM),以及entrypoint.sh中的原始entrypoint脚本,以指向jnlp-slave等价物。

 类似资料:
  • 我试图通过jenkins管道将azure web应用程序部署到azure form git 代码如下所示 这怎么可能?有什么方法可以将git repo url作为参数提供给azure插件吗? 谢了!

  • 我让Jenkins在docker内部运行aws ec2实例。我正在使用以下命令启动Jenkins: 以下是我的文件: 在Jenkins作业日志中,当我运行作业时,我得到。如果我删除了第一阶段的“Docker权限”,那么我将开始获得以下。 /var/jenkins_home/workspacetest@tmp /durable-12345/script.sh: 1: /var/jenkins_hom

  • 我写了一个Jenkins管道,相关部分如下所示: 和我的DockerFile:

  • 问题内容: 我正在尝试从Hibernate和Maven开始项目。 我有这样的例外: 这是我的项目结构的屏幕截图(hibernate.cfg.xml在src /中):http : //imageshack.us/photo/my- images/692/screenshotxba.jpg/ CrudsOps.java pom.xml 该异常的根源可能是什么? 问题答案: 正如@JBNizet所说,您

  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.