Как я могу развернуть cloudfoundry-uaa в качестве образа докера на основе tomcat?

Мы использовали задачи gradle cf-uaa для создания образа докера, но они были удалены в последней версии. Я загрузил войну в последней версии, но служба, похоже, не запускается правильно.

Я строил войну из тега v74, добавляя его в tomcat: 8.5.45-jdk12-openjdk-oracle или tomcat: 9.0.24-jdk12-openjdk-oracle и устанавливая различные переменные env, которые мы проходили к предыдущему изображению. Я не вижу никаких записей журнала после первоначального вывода tomcat, в котором говорится, что моя война развернута, и время запуска сервера.

Dockerfile - это просто адаптация того, что было передано в предыдущем образе:

FROM tomcat:8.5.45-jdk12-openjdk-oracle
#FROM tomcat:9.0.24-jdk12-openjdk-oracle
ENV LOGIN_CONFIG_URL WEB-INF/classes/required_configuration.yml
ENV UAA_CONFIG_PATH /uaa
RUN bash -c "rm -r /usr/local/tomcat/webapps/ROOT"
RUN bash -c "rm -r /usr/local/tomcat/webapps/host-manager"
RUN bash -c "rm -r /usr/local/tomcat/webapps/manager"
RUN bash -c "rm -r /usr/local/tomcat/webapps/examples"
RUN bash -c "rm -r /usr/local/tomcat/webapps/docs"
ADD *.war /usr/local/tomcat/webapps/uaa.war
RUN bash -c "echo $LOGIN_CONFIG_URL"
EXPOSE 8080

Я ожидал увидеть, что служба отвечает на мои запросы или какие-то ошибки в журнале, указывающие на то, что война не была развернута. В настоящее время я не получаю никаких журналов, созданных на основе кода приложения. Когда я отправляю запрос в службу, я получаю ответ 500 с заголовком ошибки службы.

X-Cf-Uaa-Error:Server failed to start. Possible configuration error.

update: я обнаружил журналы uaa в .../tomcat/logs/uaa.log. Я не вижу ничего, указывающего на то, что сервис не удалось развернуть, но я также не вижу ничего, что указывало бы на то, что он собирает переменные env, которые я установил в контейнере. Я воссоздал службу, используя войну из исходной установки, которая успешно начала использовать uaa.yml, который я смонтировал в качестве тома. Сравнивая журналы, первая запись в журнале исходной установки - YamlProcessor, которая вообще не отображается в журналах v75. Фактически, записи отладки не отображаются вообще, что говорит о том, что мой LOG_LEVEL env var тоже не распространяется.

Обновление 2: мы вернули базу изображений к FROM tomcat:8.5-jre8 и начали видеть ошибки пролетного пути в uaa.log. Наш предыдущий формат URL-адреса источника данных был url: jdbc:postgresql://${POSTGRES_NAME}:5432/${DB}?currentSchema=uaa, что вызывало исключительную ситуацию на пролетном пути. После удаления ссылки на схему он создал таблицы в общедоступной схеме. Создав схему uaa вручную перед запуском службы, она могла работать с исходным форматом. Версия пролетного пути обновилась, так что, возможно, есть что-то новое, что нужно установить.

Кажется, что приложение запущено, но когда я пытаюсь получить токен на /uaa/oauth/token, я получаю 500 с этой ошибкой в ​​журналах: Caused by: java.lang.NoSuchMethodError: java.nio.CharBuffer.limit(I)Ljava/nio/CharBuffer;


person thejames42    schedule 03.09.2019    source источник


Ответы (2)


С января 2021 года образы докеров сервера UAA теперь доступны на cloudfoundry / uaa dockerhub репозиторий.

docker pull cloudfoundry/uaa:75.0.0

Дополнительные сведения см. В его Dockerfile.

person V-Q-A NGUYEN    schedule 29.01.2021

Можете попробовать подписаться?

https://github.com/hortonworks/docker-cloudbreak-uaa

Это очень хорошо работает.

person Amit Teli    schedule 10.09.2019