Сборка с использованием Jib нуждается не для пользователя, не являющегося root - PullRequest
0 голосов
/ 29 апреля 2020

Не могли бы вы сообщить мне, нужен ли образ Gradle 4.6 (из docker концентратор) пользователю - root для запуска в модуле Kubernetes? Ниже приведен пример содержимого файла yaml. - name: app-build image: <my docker repo>/gradle:4.6 imagePullPolicy: Always #securityContext: # runAsUser: 1000 #runAsGroup: 1000 workingDir: /workspace/app script: | #!/bin/sh gradle wrapper -u '1000' --info --scan --gradle-version=4.6 gradle wrapper -u '1000' --gradle-version=4.6 --distribution-type=bin gradle build service:jib -u '1000' --no-build-cache --recompile-scripts -S -i --debug --scan -x test \ -Djib.to.auth.username='xxxx' \ -Djib.to.auth.password=''xxxx' \ -Djib.container.user='1000:1000' \ -Djib.container.user='gradle:gradle' \ -Djib.extraDirectories.paths = ['/workspace/app', '/workspace/app/service'] \ -Djib.extraDirectories.permissions = ['/workspace/app': '775', '/workspace/app/service': '775'] \ -Djib.to.image='<my docker repo/new image name>:latest' volumeMounts: - name: workspace mountPath: /workspace

Образ Gradle 4.6 в Docker Концентратор должен запускаться от имени пользователя - root и не работает для всех остальных пользователей при запуске в Kubernetes Pod.

Ожидаемое поведение

Изображение Gradle 4.6 должно быть в состоянии работать как пользователь - gradle или пользователь - 1000 при запуске в модуле Kubernetes, для которого для securitycontext установлено значение user - root, и группироваться как root.

Текущее поведение

Изображение Gradle 4.6 с плагином Jib работает только для пользователя root в модуле Kubernetes и не работает для пользователя 1000 и пользователя - gradle в модуле Kubernetes.

Context

Как возникла эта проблема повлиял на вас? Что вы пытаетесь совершить sh? Я пытаюсь запустить gradle образ из Kubernetes Pod как пользователь, не являющийся root.

Шаги для воспроизведения

Пример кода выше

Ваше окружение

* Образ 1023 * Gradle 4.6 извлекается из Docker концентратора и передается в реестр Docker компании. Образ Gradle 4.6 при запуске в Kubernetes Pod (с плагином Jib, инициализированным в build.gradle) от имени пользователя - root, сборка приложения прошла успешно. Образ Gradle 4.6 при запуске в Kubernetes Pod от имени пользователя - root, сборка приложения завершается неудачно. Сообщение об исключении ниже. [service-build-step] 07:43:25.705 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: org.gradle.internal.service.ServiceCreationException: Could not create service of type CrossBuildFileHashCache using BuildSessionScopeServices.createCrossBuildFileHashCache(). [ service-build-step] 07:43:25.705 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:857) [search-service-build-step] 07:43:25.705 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:808)

Я попытался передать -u - root, -u - gradle, изменить разрешение каталога проекта и не повезло. Любая информация. Для решения этой проблемы было бы очень полезно.

Заранее спасибо!

...