1

我正在尝试在 Jenkins 管道中运行 docker 容器。

我的 Jenkinsfile 中有以下内容:

stage('test') {
 steps {
  script {
    parallel (
        "gatling" : {
            sh 'bash ./test-gatling.sh'
    }, 
        "python" : {
            sh 'bash ./test-python.sh'
    })
               }
         }
       }

test-gatling.sh我有这个:

#!/bin/bash
docker cp RecordedSimulation.scala denvazh/gatling:/RecordedSimulation.scala
docker run -it -m denvazh/gatling /bin/bash
ls
./gatling.sh

ls命令仅用于测试,但是当它执行时,它会列出我的 github 存储库的文件和文件夹,而不是denvazh/gatling容器内的文件。这是为什么?我认为该docker run -it [...]命令会打开容器以便可以在其中运行命令?

=================

另外,我如何运行一个容器并让它运行,而不在其中执行任何命令?(在 Jenkins 流水线中)

我想运行:docker run -d -p 8080:8080 -t [my_container]并在端口 8080 上访问它。我该怎么做...?

4

1 回答 1

4

如果有人遇到相同或相似的问题,以下是答案:

  1. 使用docker exec [name of container]命令,并在容器内运行任何终端命令,添加/bin/bash -c "[command]"

  2. 为了能够从第二个容器访问在任何端口上运行的容器/应用程序,在启动第二个容器时使用--net=host参数运行它

于 2017-05-25T11:51:37.460 回答