Jenkins docker - 运行 一个容器,执行 shell 脚本等

Jenkins docker - running a container, executing shell script etc

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

我的 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 [...] 命令会打开容器,这样命令就可以 运行 在里面?

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

此外,我如何 运行 一个容器并直接拥有它 运行ning,而不在其中执行任何命令? (在 Jenkins 管道 ofc 中)

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

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

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

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