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 上访问它。我该怎么做...?
如果有人遇到相同或相似的问题,这里是答案:
使用docker exec [name of container]
命令,并向运行容器内的任何终端命令添加/bin/bash -c "[command]"
为了能够从第二个容器访问任何端口上 运行 的 container/app,当启动第二个容器 运行 时使用 --net=host
参数
我正在尝试 运行 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 上访问它。我该怎么做...?
如果有人遇到相同或相似的问题,这里是答案:
使用
docker exec [name of container]
命令,并向运行容器内的任何终端命令添加/bin/bash -c "[command]"
为了能够从第二个容器访问任何端口上 运行 的 container/app,当启动第二个容器 运行 时使用
--net=host
参数