gradle docker файл для сборки jars - PullRequest
2 голосов
/ 20 января 2020

Мне нужен совет, что включить в файл docker, чтобы собрать jar-файл перед сборкой docker image.

Первоначально, я использую этот файл test.bat для сборки jar

теперь мне нужно изменить этот способ, чтобы вместо него использовать docker compose.

CALL gradlew build 

rem docker build test-query/. -t testquery

rem docker run --name testquery -dit -p 8002:8002 --network lsvc --restart=unless-stopped testquery

rem docker build test-command/. -t testcommand

rem docker run --name testcommand -dit -p 8008:8008 --network lsvc --restart=unless-stopped testcommand

Файл Docker, я изменил, чтобы загрузить gradle docker, затем создать файл

FROM gradle:4.7.0-jdk8-alpine AS build
COPY --chown=gradle:gradle . /test-command/src
ADD --chown=gradle . /app
WORKDIR /app
RUN gradle build test-query/. -t testquery
RUN gradle build test-command/. -t testcommand

FROM ubuntu
FROM openjdk:8-alpine
WORKDIR /app
VOLUME ["/app"]
COPY test-command/build/libs/*.jar /app/test-command.jar
COPY test-command/docker/startup.sh /app/startup.sh
#RUN sh -c 'touch /app/test-command.jar'
RUN chmod +x /app/startup.sh
RUN chmod +x /app/test-command.jar
ENTRYPOINT ["/bin/sh", "/app/startup.sh"]

при запуске. sh

#!/bin/sh
sleep 150; java -jar /app/test-command.jar

ошибка при docker -составлении

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'test'.
> Failed to apply plugin [id 'io.gitlab.arturbosch.detekt']
   > Could not create an instance of type io.gitlab.arturbosch.detekt.extensions.DetektExtension_Decorated.
      > org.gradle.api.file.ProjectLayout.configurableFiles([Ljava/lang/Object;)Lorg/gradle/api/file/ConfigurableFileCollection;

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

1 Ответ

2 голосов
/ 20 января 2020

Используемая версия плагина io.gitlab.arturbosch.detekt несовместима с более старой версией Gradle 4.7, которую вы используете. Я предполагаю, что вы уже тестировали сборку Gradle вне docker, поэтому вы, вероятно, просто используете неправильную версию Gradle для Docker. Посмотрите, сможете ли вы обновить его до 5.x или 6.x (как правило, чем новее, тем лучше).

В противном случае вам придется либо понизить версию плагина (хотя я не знаю, какая версия была удалена). поддержка Gradle 4.7), или вы должны найти замену, которая работает со старой версией.

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