Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将cloudfoundry uaa部署为基于tomcat的docker映像?_Java_Docker_Tomcat_Cloudfoundry Uaa - Fatal编程技术网

Java 如何将cloudfoundry uaa部署为基于tomcat的docker映像?

Java 如何将cloudfoundry uaa部署为基于tomcat的docker映像?,java,docker,tomcat,cloudfoundry-uaa,Java,Docker,Tomcat,Cloudfoundry Uaa,我们使用cf uaa的gradle任务来创建docker映像,但在最新版本中,这些任务已被删除。我在最新版本中加载了war,但服务似乎没有正确启动 我一直在从v74标签构建war,将其添加到tomcat:8.5.45-jdk12-openjdk-oracle或tomcat:9.0.24-jdk12-openjdk-oracle,并设置我们传递到上一个图像中的各种环境变量。在最初的tomcat输出之后,我没有看到任何日志条目,说明我的war已经部署,服务器启动时间已到 Dockerfile基本上只

我们使用cf uaa的gradle任务来创建docker映像,但在最新版本中,这些任务已被删除。我在最新版本中加载了war,但服务似乎没有正确启动

我一直在从v74标签构建war,将其添加到tomcat:8.5.45-jdk12-openjdk-oracle或tomcat:9.0.24-jdk12-openjdk-oracle,并设置我们传递到上一个图像中的各种环境变量。在最初的tomcat输出之后,我没有看到任何日志条目,说明我的war已经部署,服务器启动时间已到

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
我希望看到服务响应我的请求,或者日志中出现一些错误,表明war部署失败。我目前没有从应用程序代码生成任何日志输出。当我向服务发送请求时,响应是一个500,其中包含来自服务的错误头

X-Cf-Uaa-错误:服务器无法启动。可能的配置错误。

更新:我在
../tomcat/logs/uaa.log
中找到了uaa日志。我没有看到任何东西表明服务部署失败,但也没有看到任何东西表明它正在接收我在容器中设置的环境变量。我使用war从最初的设置中重新创建了服务,该设置成功地使用了我作为卷装载的uaa.yml。比较这些日志,原始设置的第一个日志条目是YamlProcessor,它根本不显示在v75日志中。事实上,根本没有显示调试条目,这对我来说意味着我的
LOG\u级别
env var也没有传播

更新2:我们将图像库从tomcat:8.5-jre8恢复为
,并开始在uaa.log中看到flyway错误。我们以前的数据源url格式是
url:jdbc:postgresql://${POSTGRES_NAME}:5432/${DB}?currentSchema=uaa
,这导致了flyway异常。删除模式引用后,它在公共模式中创建了表。通过在启动服务之前手动创建uaa模式,它能够以原始格式运行。flyway版本已经更新,因此可能需要设置一些新内容


应用程序似乎正在运行,但当我尝试在
/uaa/oauth/token
上获取令牌时,我在日志中得到了一个500的错误:
由以下原因引起:java.lang.NoSuchMethodError:java.nio.CharBuffer.limit(I)Ljava/nio/CharBuffer

您可以尝试以下内容吗


这非常有效。

自2021年1月起,UAA服务器docker映像现在可以在存储库中使用

docker pull cloudfoundry/uaa:75.0.0
有关更多详细信息,请参阅