2017-07-27 6 views
0

Versuch OWASP ZAP Docker Bauen im Headless-Modus ausgeführt beschrieben here:Einstellen Docker Run Befehl Gitlab-ci.yaml für OWASP ZAP Bild

docker run -u zap -p 8080:8080 -i owasp/zap2docker-stable zap.sh -daemon -host 0.0.0.0 -port 8080 

aber kann nicht herausfinden, wie man das eine Anpassung gitlab-ci.yaml. Auf Gitlab 9.4 und denke, ein service command sollte es tun, aber es hat nicht funktioniert. Versuchte:

security_test: 
    image: python:2.7 
    stage: test 
    services: 
    - name: owasp/zap2docker-stable 
    alias: zap 
    command: ["docker run -u zap -p 8080:8080 -i owasp_zap zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE"] 
    script: 
    - export PYTHONPATH=$PWD/backend/lib:$PYTHONPATH 
    - pip install -r qa/security/requirements.txt 
    - BASE_URL="https://example.com" ZAP="http://owasp__zap2docker-stable:8080" ZAP_API_KEY=$ZAP_API_KEY python qa/security/zap_scanner.py 

Dieser diesen Fehler bekommt:

ERROR: Preparation failed: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"docker run -u zap -p 8080:8080 -i owasp_zap zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE\\\": executable file not found in $PATH\"\n" 
... 

lief auch inspizieren Docker auf sie lokal ausgeführt wird, und es zeigt die Vergangenheit als

"env": [ 
    ... 
    "ZAP_PATH=/zap/zap.sh", 
    ... 

Also änderte ich Befehl

command: ["zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE"] 

Aber immer noch den Fehler:

ERROR: Preparation failed: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"/zap/zap zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE\\\": stat /zap/zap zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE: no such file or directory\"\n" 
... 

Dies scheint die install file zu sein. Ich versuche, benutzerdefinierte Einstellung und einen API-Schlüssel verwenden, so dass Sie nicht nach Antworten suchen, wie nur Standardeinstellungen oder ZAP-Baseline verwenden.

Antwort

0

den Befehl Ändern

command: ["zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE"] 

zu

command: zap.sh -port 8080 -host 0.0.0.0 -config api.key=$ZAP_API_KEY -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true -config scanner.strength=INSANE 

Mit einem Array bedeutet, dass jeder Befehlsparameter separate Elemente von Array sein muss und nicht wie Sie alles im ersten Element des Arrays erwähnt

+0

Wenn ich das mache, wird es aufgrund eines "yaml invalid" -Fehlers nicht erstellt. Der Linter bei ci/lint sagt: "Status: Syntax ist falsch Fehler: Service-Befehl sollte ein Array von Zeichenfolgen sein" – Cynic

+0

Um klar zu sein, ist das Problem in Gitlab, nicht Andockfenster. Lokal docker-compose funktioniert mit einem Befehl wie diesem. – Cynic

+0

OK. Ich werde heute Abend noch einmal nachsehen –

Verwandte Themen