使用Docker Swarm部署Jenkins with Docker

4
我将尝试在我的Docker Swarm中运行Jenkins,并希望它能够执行Docker命令以构建新的Docker镜像。
当我使用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": 绑定源路径不存在

2个回答

3

2

我尝试了所有的方法(请参见我的编辑),但我仍然得到相同的结果。 - munHunger
1
查看Docker事件日志,看看它在抱怨哪个源卷目录。 - vivekyad4v

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接