0

我在 Jenkins 中创建了一个管道,它从 Github 获取一个应用程序,构建该应用程序,然后构建一个映像,然后最终使用该应用程序运行该映像。

Dockerfile 是:

FROM javastreets/mule:latest

COPY ./target/jenkins-demo-api-1.0.0-1.0.0-SNAPSHOT-mule-application.jar /opt/mule/apps/ 

CMD [ "/opt/mule/bin/mule"]

这里的 jenkins-demo-api-1.0.0-1.0.0-SNAPSHOT-mule-application.jar是来自 Github 的 Jenkins 中构建的应用程序。

管道脚本如下:

pipeline {
    agent any
    
    tools{
        maven 'M3'
    }
    stages {
        stage('git pull'){
            steps{
                git branch: 'master', credentialsId: '025fbee3-18cc-4298-ac9b-adac*****', url: 'https://github.com/treadston-e/mule-jenkins.git'
            }
        }
        stage('Build') {
            steps {
                bat "mvn clean package"
            }
        }
        stage('build image'){
            steps{
                bat 'docker build -t docker-demo .'
            }
        }
        stage('run image'){
            steps{
                bat 'docker run -d -p 127.0.0.1:8081:8081 docker-demo'
            }
        }
       
    }
}

管道成功执行,但是当我尝试点击时,http:localhost:8081我收到的响应是 此页面无法正常工作

我应该怎么办?

4

1 回答 1

0

您所指的本地主机是 docker 容器的本地主机,与您的客户端不同。尝试在 docker run 命令中指定网络。

docker run -d --network host -p 8081:8081 docker-demo

如果您想检查网桥在哪个 IP 地址上运行,可以按如下方式进行检查:

docker network inspect bridge
于 2020-09-28T15:14:08.447 回答