【发布时间】:2019-12-05 16:20:26
【问题描述】:
我在将已编译的 Spring-Boot 应用程序连接到在服务器上的另一个容器上运行的数据库时遇到问题。
我尝试了不同的配置,从 localhost 更改为我的服务器的 IP 地址以进行连接。我还通过管理员登录仔细检查了凭据是否匹配。最后,我多次重新构建 compose 和 image 文件,以确保我拥有所有最新版本。
编写文件:
version: '3.1'
services:
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: mypassword
MYSQL_DATABASE: marketingappdb
ports:
- "3306:3306"
expose:
- 3306
volumes:
- ./mariadbvolume:/var/lib/mariadb
networks:
- marketingapp
adminer:
image: adminer
restart: always
ports:
- "8086:8080"
expose:
- 8086
depends_on:
- db
networks:
- marketingapp
springserver:
image: marketingapp
restart: always
ports:
- "8091:8091"
expose:
- 8091
depends_on:
- db
networks:
- marketingapp
networks:
marketingapp:
Spring 服务器镜像:
FROM openjdk:latest
COPY /marketing-app-final.jar .
EXPOSE 8091
ENTRYPOINT ["java", "-jar", "marketing-app-final.jar"]
Spring 的应用程序属性:
server.port = 8091
spring.datasource.url=jdbc:mariadb://0.0.0.0:3306/marketingappdb
spring.datasource.username=root
spring.datasource.password=mypassword
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
我可以使用远程相同配置中的应用程序从我的 PC 连接到数据库(显然将 localhost 替换为 IP)并且不明白为什么我不能从实际服务器上执行相同操作。提前感谢您的帮助!
【问题讨论】:
标签: spring-boot docker docker-compose mariadb