【问题标题】:Docker container accessible to localhost when container is runned manually but not when runned by a jenkinsfileDocker 容器在手动运行容器时可由 localhost 访问,但在由 jenkinsfile 运行时无法访问
【发布时间】:2021-12-10 00:33:38
【问题描述】:

我在 PORT:8084 上暴露的容器上运行 Spring Boot 应用程序。 图像被推送到 docker hub 然后我在 Jenkinsfile 上有这个脚本,它在容器上运行图像:

stage('Deploying the image into a container'){
        steps {
            echo "Installing the app "
            sh 'docker run $imagename:$BUILD_NUMBER -p 8084:8084 -d --name $dockerImage  '
        }
    }

在 'localhost:8084' 上无法访问应用程序,容器已启动并且在运行时 docker-ps

33f8cb4d98e6   28609002/time_sheet_dev_ops:38   "java -jar time_shee…"   29 minutes ago   Up 3 seconds   8084/tcp   focused_merkle

但是当我在终端中手动运行图像时,可以访问该应用程序:

docker run -d -p 8084:8084 imagename

运行docker ps时:

50715adaa50c   28609002/time_sheet_dev_ops:latest   "java -jar time_shee…"   8 seconds ago   Up 7 seconds   0.0.0.0:8084->8084/tcp, :::8084->8084/tcp   distracted_shamir

唯一的区别在于端口输出,我尝试在运行命令中添加-b 0.0.0.0,还尝试通过“127.0.0.1:8084”和许多其他解决方案访问应用程序,但似乎没有任何东西可以使它在 CI/ 中工作CD流水线

【问题讨论】:

    标签: docker tcp port


    【解决方案1】:

    尝试run 之后和image 之前的选项。

    这里是docker run --help 输出:

     docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    所以,正确的命令:

    sh 'docker run -p 8084:8084 -d --name $dockerImage $imagename:$BUILD_NUMBER'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      • 2022-07-13
      • 2021-01-07
      • 2020-03-02
      相关资源
      最近更新 更多