Мы использовали задачи 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;