【问题标题】:Jenkinsfile pipeline: access one docker container from anotherJenkinsfile 管道:从另一个访问一个 docker 容器
【发布时间】:2019-10-10 15:00:20
【问题描述】:

我有一个 Jenkinsfile,我在其中声明了 2 个阶段:
第 1 阶段 - 我提供从 nginx docker image 创建的网络服务器
第 2 阶段 - 运行另一个由 node 映像创建的 docker 容器并尝试连接到 container#1
当我运行此管道时,我不断收到此错误 (7) Failed to connect to 127.0.0.1 port 80: Connection refused 总的来说,我是 jenkins-pipeline、docker 和 devOps 的新手,但看起来容器在不同的网络或环境中运行。

我的 Jenkins 文件:

pipeline {
    agent any
    stages {
        stage('Serve') {
            agent {
                docker { 
                    image "nginx" 
                    args "--name nginx-server -v ${WORKSPACE}/src:/usr/share/nginx/html:ro -d -p 8080:80"
                    reuseNode true
                } 
            }
            steps {
                sh 'apt-get update' 
                sh 'apt-get install -y --no-install-recommends curl'
                sh 'rm -rf /var/lib/apt/lists/*'
            }
        }
        stage('Connect to server') {
            agent { docker { image 'node' } }
            steps {
                sh 'curl http://localhost:8080'
            }
        }
    }
}

【问题讨论】:

  • 除非你有充分的理由不这样做,否则你应该通过在管道中使用 docker-compose 来解决这个问题。它可以轻松解决您的问题。

标签: docker jenkins jenkins-pipeline


【解决方案1】:

请指定操作系统类型

附上完整的日志

If you OS is windows 10 then you need to update docker setting also.
step 1 : goto docker setting
step : 2 select General -- > Checked Expose daemon on tcp://localhost:2375 without TLS

【讨论】:

    猜你喜欢
    • 2017-07-12
    • 2019-06-13
    • 2021-03-04
    • 2021-12-08
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多