如何解决Spring 启动,docker compose 内的 postgres 无法访问 localhost
我有一个带有 Postgres 数据库的 Spring Boot Web 应用程序。我创建了 docker-compose 文件
version: '3.1'
services:
app:
container_name: springboot-postgresql
image: springboot-postgresql
build: ./
restart: always
#Environment variables for Spring Boot Application.
environment:
- DB_SERVER=postgresqldb
- POSTGRES_DB=my_database
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
ports:
- "8080:8080"
depends_on:
- postgresqldb
postgresqldb:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=my_database
和 Dockerfile
FROM adoptopenjdk/openjdk15:alpine-jre
VOLUME /tmp
copY target/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8080
还有 application.properties
文件:
spring.datasource.url=jdbc:postgresql://${DB_SERVER}/${POSTGRES_DB}
spring.datasource.username=${POSTGRES_USER}
spring.datasource.password=${POSTGRES_PASSWORD}
spring.jpa.hibernate.ddl-auto=create
spring.freemarker.expose-request-attributes=true
spring.freemarker.suffix= .ftl
address=http://localhost:8080/
server.error.whitelabel.enabled=false
# =========================== MAIL ===========================
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.mail.host=***
spring.mail.username=***
spring.mail.password=***
spring.mail.port=465
spring.mail.protocol=smtps
mail.smtp.auth=true
mail.debug=true
# =========================== SESSIONS ===========================
spring.session.jdbc.initialize-schema=always
spring.session.jdbc.table-name=SPRING_SESSION
# =========================== THYMELEAF ===========================
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html # ;charset=<encoding> is added
spring.thymeleaf.cache=true
在我运行 docker-compose up
后,所有服务都启动并且一切正常:
...
springboot-postgresql | 2021-01-11 13:20:20.703 INFO 1 --- [ main] DeferredRepositoryInitializationListener : Triggering deferred initialization of Spring Data repositories…
springboot-postgresql | 2021-01-11 13:20:21.268 INFO 1 --- [ main] DeferredRepositoryInitializationListener : Spring Data repositories initialized!
springboot-postgresql | 2021-01-11 13:20:21.306 INFO 1 --- [ main] com.example.semestral_work.Application : Started Application in 15.753 seconds (JVM running for 17.887)
但由于 http://localhost:8080/
,我无法访问 ERR_CONNECTION_REFUSED
链接。
服务器看起来正在运行,但我无法访问此应用程序的任何页面。
请问我做错了什么?
解决方法
因为你的spring的tomcat还没开始。为此,您需要在不同的终端中启动 docker 或 spring 应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。