gpt4 book ai didi

docker - 带有容器的 Jenkins Docker Sidecar 运行守护程序命令

转载 作者:行者123 更新时间:2023-12-02 18:37:16 26 4
gpt4 key购买 nike

我想在我的管道中将 ZAP 作为代理运行,并通过代理运行我的 selenium 测试。我只是在容器中使用 curl 代替 selenium 进行测试,并且能够使用 docker 在本地完成这项工作。

在我的管道中,zap 启动,但之后管道仅位于 zap 容器中,从未进入第二个容器。我明白为什么,我作为守护进程启动了一个进程,它永远不会完成,所以这一步永远不会完成。我只是不明白如何在 Jenkins 中完成我所需要的。

stage('Run Zap Proxy'){
docker.image('owasp/zap2docker-weekly').withRun('-p 8090:8090') { c ->
docker.image('owasp/zap2docker-weekly').inside("-v $WORKSPACE:/zap/wrk:rw") {
/* Wait until mysql service is up */
sh """
zap.sh -daemon -port 8090 -host 0.0.0.0 -newsession testing -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config api.disablekey=true
"""
}
docker.image('cfmanteiga/alpine-bash-curl-jq').inside("--link ${c.id}:proxy") {
sh 'curl -k -x http://proxy:8090 https://my.fqdn.net'
sh """
curl -k -x http://proxy:8090 \
-X POST https://my.fqdn.net/api/rest/sessions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"username":"username","password":"password"}'
"""
sh 'sleep 2m'
sh 'curl -o report.html http://zap/UI/core/other/htmlreport'
stash includes: 'report.html', name: 'report'
}
}
}

我基本上需要使用 im 在“内部”中使用的命令启动 zap,并且仅在第二个容器阶段完成时才终止容器。

最佳答案

您可以直接在 withRun 中传递 zap 命令部分:

stage('Run Zap Proxy'){
docker.image('owasp/zap2docker-weekly').withRun('-p 8090:8090 -v $WORKSPACE:/zap/wrk:rw', 'zap.sh -daemon -port 8090 -host 0.0.0.0 -newsession testing -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config api.disablekey=true') { c ->
docker.image('cfmanteiga/alpine-bash-curl-jq').inside("--link ${c.id}:proxy") {
sh 'curl -k -x http://proxy:8090 https://my.fqdn.net'
sh """
curl -k -x http://proxy:8090 \
-X POST https://my.fqdn.net/api/rest/sessions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"username":"username","password":"password"}'
"""
sh 'sleep 2m'
sh 'curl -o report.html http://zap/UI/core/other/htmlreport'
stash includes: 'report.html', name: 'report'
}
}
}
withRun允许您覆盖 zap-container 的 CMD。检查此 API-documentation .

关于docker - 带有容器的 Jenkins Docker Sidecar 运行守护程序命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com