Я попытался создать HTML-отчет ZAP, используя образ Full Scan Docker в Jenkins, используя этот этап:
stage('OWASP ZAP Full Scan') {
steps {
script {
sh "sudo docker run -v /var/lib/jenkins/workspace/Front:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t http://192.168.56.7:80/ -r testreport.html"
} } }
)
Это сработало, но не сгенерировало HTML-отчет должным образом и привело к ошибке:
ERROR [Errno 13] Permission denied: '/zap/wrk/testreport.html'
2024-04-16 09:30:57,094 I/O error: [Errno 13] Permission denied: '/zap/wrk/testreport.html'
Traceback (most recent call last):
File "/zap/zap-full-scan.py", line 469, in main
write_report(os.path.join(base_dir, report_html), zap.core.htmlreport())
File "/zap/zap_common.py", line 569, in write_report
with open(file_path, mode='wb') as f:
PermissionError: [Errno 13] Permission denied: '/zap/wrk/testreport.html'
Found Java version 11.0.22
Available memory: 8719 MB
Using JVM args: -Xmx2179m
Это несоответствие между вашим идентификатором пользователя агента Jenkins и процессом внутри вашего контейнера, который запускается от имени пользователя zap
с uid 1000. Установленная папка не имеет необходимых разрешений zap
для создания файлов. Не знаю, как вы хотите это воспроизвести, но вы можете создать новую папку и открыть ее:
sh """
rm -rf /var/lib/jenkins/workspace/Front/report
mkdir -p /var/lib/jenkins/workspace/Front/report
chmod 777 /var/lib/jenkins/workspace/Front/report
sudo docker run -v /var/lib/jenkins/workspace/Front:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t http://192.168.56.7:80/ -r report/testreport.html
"""