这是一个比较复杂的情况,但是我在一个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的解决方案或其他建议,我将非常感谢。
1条答案
按热度按时间hc2pp10m1#
您可以尝试使用docker-in-docker图像https://hub.docker.com/_/docker