Я хочу создать образ докера, который имеет все инструменты, связанные с укрывистостью.Хотя моя цель - выполнить анализ кода на 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).
Вопрос в том, как это можнобыть настроенным?