我将尝试在我的Docker Swarm中运行Jenkins,并希望它能够执行Docker命令以构建新的Docker镜像。
当我使用docker-compose脚本在本地运行时:
它完全按照我的要求工作,可以构建以下Jenkinsfile:
问题在于我似乎无法将其部署到我的Docker Swarm上。当使用Portainer部署时,我不断地遇到“invalid mount config for type "bind": bind source path does not exist”错误。我是配置错了还是出了什么问题?
编辑: 我使用“docker stack deploy -c jenkins.yml jenkins”测试部署了以下compose文件。
当我使用docker-compose脚本在本地运行时:
version: '2'
services:
jenkins:
build: ./jenkins
image: munhunger/jenkins
container_name: "jenkins"
ports:
- "81:8080"
environment:
- minio_url=<URL>
- minio_access=<TOKEN>
- minio_secret=<SECRET>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.jenkins/workspace:/root/.jenkins/workspace
- /var/lib/jenkins:/var/lib/jenkins
- /var/lib/docker:/var/lib/docker
它完全按照我的要求工作,可以构建以下Jenkinsfile:
pipeline {
agent any
stages {
stage('build war') {
agent {
docker { image 'gradle:latest' }
}
steps {
sh 'gradle war -b oven/build.gradle'
}
}
stage('build dockerimage') {
steps {
script {
dir('oven') {
def image = docker.build("munhunger/highly-oven")
docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-credentials') {
image.push("${env.BUILD_NUMBER}")
image.push("latest")
}
}
}
}
}
}
}
问题在于我似乎无法将其部署到我的Docker Swarm上。当使用Portainer部署时,我不断地遇到“invalid mount config for type "bind": bind source path does not exist”错误。我是配置错了还是出了什么问题?
编辑: 我使用“docker stack deploy -c jenkins.yml jenkins”测试部署了以下compose文件。
version: '3'
services:
jenkins:
image: munhunger/jenkins
container_name: "jenkins"
ports:
- "81:8080"
environment:
- minio_url=<URL>
- minio_access=<ACCESS>
- minio_secret=<SECRET>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.jenkins/workspace:/root/.jenkins/workspace
- /var/lib/jenkins:/var/lib/jenkins
- /var/lib/docker:/var/lib/docker
但我仍然收到 无效的挂载配置类型 "bind": 绑定源路径不存在