Построить проект Java Gradle в контейнере Docker?

74
10

У нас есть проект Java, построенный с помощью Gradle, и для него требуется Java 8 и т.д. Разработчики имеют разные версии Java на своих компьютерах (разные проекты, IDEA всегда была придирчива к Open JDK, но мы используем его для запуска наших приложений), и мы хотели бы с легкостью построить с правильной версией Java.

Идея состоит в том, чтобы использовать Docker для задачи, то есть запустить контейнер докеров с правильной версией Java и использовать его для сборки (компиляции, тестирования, сборки и т.д.).

Это хорошая идея? Как я могу это сделать? Например, я должен сказать Gradle, чтобы запустить контейнер, и сказать ему использовать его javac? Или я запускаю контейнер, монтирую том с кодом проекта и строю с помощью Gradle в этом контейнере? Это будет иметь тот недостаток, что люди должны сначала запустить контейнер, но я думаю, это может быть сценарий.

Кто-нибудь делает что-то подобное?

спросил(а) 2016-09-11T15:03:00+03:00 4 года, 4 месяца назад
1
Решение
74

Если целью является стандартизация сборки, то вы должны использовать программное обеспечение для автоматизации сборки:

Кроме того, если ваш проект градиента должен быть запущен с определенной версией, вы можете обеспечить его соблюдение: как сообщить Gradle использовать конкретную версию JDK?

Я бы не использовал докер для этого.

ответил(а) 2016-09-13T05:09:00+03:00 4 года, 4 месяца назад
43

Я использовал контейнер градиента для создания моего проекта java jbbbbb. Вы можете сделать что-то подобное.

Dockerfile

FROM gradle:jdk8
COPY . /home/gradle/project
WORKDIR /home/gradle/project
ENTRYPOINT ["gradle"]
CMD ["bootRepackage"]

Вы также можете найти информацию о различных контейнерах градиента на странице https://hub.docker.com/_/gradle/, которая показывает, как вы можете монтировать ваш каталог хоста в качестве тома в контейнер и строить.

ответил(а) 2018-06-01T01:07:00+03:00 2 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема