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

时间:2017-05-24 08:03:55

标签: docker jenkins jenkins-pipeline jenkins-docker

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

我的Jenkins文件中有以下内容:

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 Pipeline ofc中)

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

1 个答案:

答案 0 :(得分:2)

如果有人有相同或类似的问题,请回答:

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

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

  3. 运行它