总的来说,我在编程方面是个新手,但对jenkins来说更是如此。我有一个distinct应用程序和postgres作为db,都运行在不同的码头容器和一个回购在github与代码。现在,我试图使用jenkins在每次将新代码推送到github时自动化测试,但是我认为我想做的实际上是不实际的或者不可能的,那就是:在码头上使用Jenkins,将它集成到一个私有的github repo中,让jenkins使用主机运行docker。起初,我在考虑使用一个docker,以便jenkins实例位于一个可以运行码头的容器中,但由于这篇文章,我决定遵循下面的方法。
所以这是詹金斯协会:
docker run -d --name jenkins-docker --restart=on-failure
-v /var/run/docker.sock:/var/run/docker.sock -v jenkins_home:/var/jenkins_home
-p 8080:8080 -p 5000:5000 jenkins/jenkins:lts-jdk11而且它已经与github集成了,通过使用github应用程序,所以每次推动回购的时候,工作就开始了。
下面是jenkinsfile:
pipeline {
agent any
stages {
stage('Test') {
steps {
sh 'docker compose -p testing -f docker/testing.yml up -d'
}
}
}
}这是一个错误:
/var/jenkins_home/workspace/vlep-pipeline_main@tmp/durable-9098aec0/script.sh: 1: docker: not found它是不是应该找到这个命令,因为它是与-v /var/run/docker.sock:/var/run/docker.sock一起运行的
如果上面的问题解决了,jenkins能以这种方式构建和运行图像吗?
发布于 2022-09-23 14:14:15
事实证明,映射套接字是不够的。我仍然需要安装对接二进制,在我的例子中,坞组合插件以及。
https://stackoverflow.com/questions/73821432
复制相似问题