gpt4 book ai didi

bash - 在容器中运行 Jenkins 在主机上构建 docker 文件

转载 作者:行者123 更新时间:2023-12-04 19:06:40 24 4
gpt4 key购买 nike

我正在尝试使用 Jenkins 管道构建 docker 镜像,Jenkins 在 Docker 容器中运行。
这是我的 Jenkins 文件:

   stage 'Deploy'
dir('/apps/npt'){
sh 'chmod +x deploy_prod.sh'
sh 'cat deploy_prod.sh'
sh './deploy_prod.sh'
}
这就是我启动容器的方式:
docker run --detach --publish 8080:8080 -u 0  --volume jenkins_volume:/var/jenkins_home  --volume apps:/apps --name jenkins jenkins/jenkins
这是.sh文件:
#!/bin/bash
#build docker container
docker build -t npt .
这是我得到的错误:
./deploy_prod.sh: line 6: docker: command not found
我尝试将 docker 套接字作为卷添加到容器 -v /var/run/docker.sock:/var/run/docker.sock ,但仍然是同样的错误。
我在一个不同的项目上使用相同的配置,jenkins 在虚拟机上作为服务运行,没有问题......

最佳答案

您需要在 Jenkins docker 容器中添加 docker 客户端。看看https://github.com/jenkinsci/docker/blob/master/README.md#installing-more-tools如何做到这一点。您也可以使用 docker exec 将其安装在容器中。
当脚本在容器内运行时,它会检查 PATH 变量以解析 docker命令。然后 docker 客户端将指令写入/var/run/docker.sock。 docker 服务器读取这些指令并采取相应的行动。-v /var/run/docker.sock:/var/run/docker.sock -> 这意味着您的 docker 容器中的 docker 客户端可以与运行在主机上的 docker 引擎(服务器/VM)通信。

关于bash - 在容器中运行 Jenkins 在主机上构建 docker 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67405301/

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