我们使用cf-uaa的gradle任务来创建docker镜像,但在最新版本中删除了这些镜像。我已经在最近的版本中加载了war,但是服务似乎不能正确启动。
我一直在使用v74标记构建war,将其添加到tomcat:8.5.45-jdk12-openjdk-oracle或tomcat:9.0.24-jdk12-openjdk-oracle,并设置我们传递给前一个映像的各种env变量。在最初的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部署失败。我目前没有从应用程序代码中获得任何日志输出。当我向服务发送请求时,响应是带有来自服务的error头的500。
X-Cf-Uaa-Error:Server failed to start. Possible configuration error.
更新:我已经在.../tomcat/logs/uaa.log中找到了uaa日志,我没有看到任何表明服务部署失败的东西,但我也没有看到任何东西表明它正在拾取我在容器中设置的env变量。我使用原始设置中的war重新创建了服务,该设置使用我挂载为卷的uaa.yml成功启动。比较日志,原始设置的第一个日志条目是YamlProcessor,它根本不会出现在v75日志中。实际上,根本没有显示调试条目,这表明我的LOG_LEVEL环境变量也没有进行传播。
更新2:我们将图像库恢复为FROM tomcat:8.5-jre8,并开始在uaa.log中看到flyway错误。我们之前的数据源url格式是url: jdbc:postgresql://${POSTGRES_NAME}:5432/${DB}?currentSchema=uaa,这导致了一个flyway异常。删除模式引用后,它在公共模式中创建表。通过在启动服务之前手动创建uaa模式,它能够以原始格式运行。flyway版本已经更新,所以可能有一些新的东西需要设置。
这个应用程序似乎正在运行,但是当我尝试在/uaa/oauth/token获取令牌时,我得到了一个500,并在日志中显示以下错误:Caused by: java.lang.NoSuchMethodError: java.nio.CharBuffer.limit(I)Ljava/nio/CharBuffer;
发布于 2021-01-30 06:16:09
从2021年1月起,UAA服务器docker镜像现在可以在cloudfoundry/uaa dockerhub存储库中使用。
docker pull cloudfoundry/uaa:75.0.0有关详细信息,请参阅其Dockerfile。
发布于 2019-09-10 13:30:38
https://stackoverflow.com/questions/57763689
复制相似问题