Spring Boot作为容器问题运行

2019年12月21日 7点热度 0条评论

我正在docker容器内使用REST API运行Spring Boot。当我从日食或罐子里跑时,一切似乎都正常。但是当我对其进行docker化并运行时,我面临以下问题

第一
无法访问容器内的REST端点。

http://localhost:9000/->可以但是

http://localhost:9000/api/v1/test->无法识别。

但是我可以大张旗鼓地运行它。

第二个问题org.postgresql.util.PSQLException:错误:架构 的权限被拒绝

但是我已经授予了对架构的所有权限,例如

GRANT ALL ON SCHEMA < schemaname> TO < username>;
GRANT USAGE ON SCHEMA < schemaname> TO < username>;

仅当我尝试从容器运行时,才出现这些问题。

命令用于docker

docker run -p 9000:9000 < image name >

我正在使用Spring Boot 2.1.9

Docker文件

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD run-app.sh run-app.sh
RUN chmod +x run-app.sh
EXPOSE 9000
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} dummy.jar
ENTRYPOINT ./run-app.sh

运行app.sh

java  $JAVA_OPTS -jar /dummy.jar

我的postgresql Db在aws中运行。

我的Spring Boot能够启动,但是只有在查询API时,我才遇到异常

解决方案如下:

如果可能,您是否可以共享dockerfile内容,想看看您对端点给出了什么命令。对于您正在使用的postgresql,它是通过spring boot app或其他服务器嵌入到docker中的吗?

我已经用nginx和postgresql dockerized设置了spring boot,但是在不同的服务器/容器中,它们在生产中工作得很顺利。