小编典典

配置Spring Boot Docker和Mysql

spring-boot

我是Spring Boot和Docker的新手。

我试图创建一个连接到mysql并使用Docker来运行两者的Spring Boot应用程序。

我按照 步骤1- 创建mysql映像并开始运行它的步骤。

docker run --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=root" --env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=test" mysql

Step2 创建一个SpringBoot应用程序

docker build -f Dockerfile -t gradle-springboot-docker .

第三步:运行 Spring Boot应用程序并与Mysql链接

docker run -t --name gradle-springboot-docker --link docker-mysql:mysql -p 8080:8080 gradle-springboot-docker

它给mysql提供了基本的连接错误。我列出了以下application.properties。自从我使用Docker后,我的连接信息是否正确?mysql的主机是什么?

SSL properties
server.port=8080

#DataSource
datasource.driver = com.mysql.jdbc.Driver
datasource.url= jdbc:mysql://localhost:3306/test? 
autoReconnect=true&useSSL=false            
datasource.username=root
datasource.password=root

# Hibernate
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql = true
hibernate.lazy = true
hibernate.max_fetch_depth = 3
hibernate.packagesToScan = com.springboot.poc
# Once DB is created change below property to 'update'
hibernate.hbm2ddl.auto = update

阅读 771

收藏
2020-05-30

共1个答案

小编典典

您应该使用mysql的容器名称作为主机名,因为这些链接在一起,因此可以通过spring的名称发现mysql容器。因此,您需要更改datasource.url= jdbc:mysql://localhost:3306/test?datasource.url= jdbc:mysql://docker- mysql:3306/test?

或者您可以使用别名,如@ g00glen00b建议的那样,例如: datasource.url= jdbc:mysql://mysql:3306/test?

2020-05-30