【发布时间】: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