【发布时间】:2020-02-25 10:19:50
【问题描述】:
我在 docker 容器内运行带有 REST API 的 Spring Boot。当我从 Eclipse 或 jar 运行时,一切似乎都运行良好。但是当我将它 dockerize 并运行时,我面临以下问题
第一 无法访问容器内的 REST 端点。
http://localhost:9000/ --> 有效但是
http://localhost:9000/api/v1/test --> 无法识别。
但是我可以大摇大摆地运行它。
第二个问题 org.postgresql.util.PSQLException: ERROR: permission denied for schema
但是我已经授予了架构的所有权限,例如
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
Dockerfile
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
run-app.sh
java $JAVA_OPTS -jar /dummy.jar
我的 postgresql 数据库在 aws 中运行。
我的 spring boot 能够启动,但只有在我的 API 查询时我才面临异常
【问题讨论】:
-
[第二期] 你是不是在容器内用 localhost 引用你的数据库?这是我的一个项目,它在 docker 中运行 spring-boot 和 postgres,如果配置有帮助的话:github.com/choudharyhimanshu/survey-panda-api
-
第一个问题遇到什么错误?
-
嗨,我的数据库在 aws 中运行。
-
第一个问题很好,可以通过 curl 命令运行,只在我面对的邮递员中运行,所以不太在意
标签: java postgresql spring-boot docker amazon-aurora