Я хочу запускать ZAP в качестве прокси в моем конвейере и запускать тесты на селен через прокси.Я просто использовал curl в контейнере вместо селена для моего тестирования и смог выполнить эту работу локально, используя 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'
}
}
}
Мне по сути нужно запустить zap с помощью команды im, которую я использую во "inside", и уничтожать контейнер только тогда, когда этапы второго контейнераполный.