Как использовать JDK 11 из хост-системы в контейнере Jenkins для сборки Spring Boot 2 - PullRequest
0 голосов
/ 28 мая 2019

В моем docker-compose.yml используется jenkinsci/blueocean:latest, но он не поддерживается, однако JDK 11 установлен в хост-системе докера.

Теперь этот докернизированный Jenkins основан на JDK 8, но я хочу использовать 11 для сборок моего проекта с использованием Spring Boot 2.

Как можно использовать JDK 11, установленный в хост-системе, при создании заданий на докеризованных jenkins?

1 Ответ

0 голосов
/ 29 мая 2019

Java для Linux зависит от glibc, образ докера jenkinsci/blueocean:latest использует альпийский и альпийский использует MUSL в качестве стандартной библиотеки C.

Чтобы использовать Java в альпийских изображениях, есть некоторые хитрости, но это не так просто,У вас есть какие-то альтернативы, готовьте образ докера.См. эту ссылку для получения дополнительной информации.

Чтобы работать, вам нужно использовать другой образ от Дженкинса, который не использует альпийский.См. Примеры ниже

version: '3'

services:
  blueocean:
    image: jenkinsci/blueocean:latest
    ports:
      - 8080:8080
    volumes:
      - ./jdk-11.0.2:/opt/jdk11-glibc # doens't work
      - ./jdk-13-ea-musl:/opt/jdk13-musl # work

  jenkins:
    image: jenkins/jenkins:latest
    ports:
      - 8081:8080
    volumes:
      - ./jdk-11.0.2:/opt/jdk11-glibc # work
      - ./jdk-13-ea-musl:/opt/jdk13-musl # doens't work

  jenkins-alpine:
    image: jenkins/jenkins:alpine
    ports:
      - 8082:8080
    volumes:
      - ./jdk-11.0.2:/opt/jdk11-glibc # doens't work
      - ./jdk-13-ea-musl:/opt/jdk13-musl # work

  # alternatively, you can use the jenkins version with jdk11 and install blueocean
  jenkins-jdk11:
    image: jenkins/jenkins:jdk11
    ports:
      - 8083:8080

Вы хотите сохранить настройки при обновлении jenkins, нужно ли выводить громкость /var/jenkins_home.

...