这是有点复杂的情况,但我的詹金斯安装在一个码头容器。我正试图在node.js应用程序中运行一些测试,但是这个测试环境需要启用docker+docker。目前,Jenkins的配置是通过管道代码完成的。
到目前为止,我已经尝试过在舞台内拉码头,如下所示:
pipeline {
agent {
docker {
image 'node'
}
}
stages {
stage("Checkout") {
steps {
git url: ....
}
}
stage("Docker") {
steps {
script {
def image = docker.image('docker')
image.pull()
image.inside() {
sh 'docker --version'
sh 'docker-compose --version'
}
}
}
}
}返回“码头:未找到”时出错。我原以为脚本会成功,因为我尝试了完全相同的'agent‘,没有问题,但在节点映像中,它似乎不起作用。
我也不确定这是否是正确的方法,因为据我正确的理解,这种方式在码头内运行对接是不建议的。我发现的一种方法是,在运行docker -v /var/run/docker.sock:/var/run/docker.sock ...时,建议运行https://www.jenkins.io/doc/book/installing/docker/,但目前我运行的是坞-撰写,安装步骤来自https://www.jenkins.io/doc/book/installing/docker/(而不是单独的停靠,而是将jenkins和jenkins-blueocean合并到一个坞-撰写文件中),但这没有起作用。
目前,我已经不知道如何在相同的环境中运行node.js和docker,任何解决方案或其他建议都将不胜感激。
发布于 2022-10-27 12:45:46
您可以尝试使用坞内图像https://hub.docker.com/_/docker。
https://stackoverflow.com/questions/74222092
复制相似问题