是否可以在Jenkins中的节点容器内安装和运行Docker?

im9ewurl  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(218)

这是一个比较复杂的情况,但是我在一个docker容器中安装了Jenkins。我试图在node.js应用程序中运行一些测试,但是这个测试环境需要启用docker+docker-compose。目前,Jenkins配置是通过管道代码进行的
到目前为止,我已经尝试将docker拉入一个阶段,如下所示:

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'
                }
            }
        }
    }
}

返回“docker:未找到“。我希望脚本成功,因为我已经尝试了完全相同的'agent any',没有问题,但在节点映像中,它似乎不工作。
我也不确定这是不是正确的方法,因为正如我所理解的那样,这种在docker中运行docker的方法是不推荐的。我发现的一种方法是,当运行docker时,推荐运行docker -v /var/run/docker.sock:/var/run/docker.sock ...,但目前我运行的是docker-compose,安装步骤从https://www.jenkins.io/doc/book/installing/docker/开始(我没有使用单个dockers,而是将jenkins和jenkins-blueocean合并到一个docker-compose文件中),但这并不起作用。
目前,我没有主意,如果有任何关于如何在同一个环境中运行node.js和docker的解决方案或其他建议,我将非常感谢。

相关问题