Инструмент Coverity как образ докера для Java-приложений - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу создать образ докера, который имеет все инструменты, связанные с укрывистостью.Хотя моя цель - выполнить анализ кода на Java 9 исходном коде.Я использую Gradle 5.1.1 в качестве инструмента для сборки.

Соответствующий Dockerfile:

FROM openjdk:9-jdk
ADD cov-analysis-linux64-latest.sh .
ADD cov-analysis-linux64-license.dat .
ENV COVERITY_HOME=/opt/cov-platform
RUN set -e; chmod +x cov-analysis-linux64-latest.sh ;\
    ./cov-analysis-linux64-latest.sh \
    -q \
    --installation.dir=${COVERITY_HOME} \
    --license.region=0 \
    --license.agreement=agree \
    --license.type.choice=0 \
    --license.cov.path=/cov-analysis-linux64-license.dat ;\
    rm -f cov-analysis-linux64-*.sh

ENV PATH="${COVERITY_HOME}/bin:${PATH}"
RUN cov-configure --java --version 9 --no-android --no-jsp

Команда сборки Docker:

docker build -t cov-test .

Выполнение контейнера:

docker run --rm -v ~/my-service:/workspace -it cov-test /bin/bash

Внутри запускаемого мной контейнера:

cd workspace
cov-build --dir tmp/coverity/service sh gradlew clean build

Вывод:

Coverity Build Capture (64-bit) version 2018.09 on Linux 4.9.125-linuxkit x86_64
Internal version numbers: 2096cfd878 p-othello1-push-33188.942.300
.
.
.
[WARNING] Emitted 0 Java compilation units (0%) successfully

0 Java compilation units (0%) are ready for analysis
 For more details, please look at:
    /workspace/tmp/coverity/service/build-log.txt

Из файла журнала:

Using Eclipse FE
invalid location for system libraries: /usr/lib/jvm/java-9-openjdk-amd64
[ERROR] Internal Eclipse error. Failed to emit any files.
[ERROR] Compilation failed! Exit code 1
WARNING: cov-emit-java returned with code 1
ERROR: cov-emit-java returned with exit code 1

Я подозреваю, что ошибка связана с неправильным использованием пути JDK прикрытием (/usr/lib/jvm/java-9-openjdk-amd64).

Вопрос в том, как это можнобыть настроенным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...