我对spring boot and docker是新手。
我正在尝试创建一个连接到mysql的spring启动应用程序,并使用docker来运行这两个应用程序。
我遵循的步骤Step1-创建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 .
step3运行SpringBoot应用程序并与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
1条答案
按热度按时间qlfbtfca1#
您应该使用mysql的容器名作为主机名,因为它们是链接的mysql容器可以通过spring的名称发现。所以你需要改变
datasource.url= jdbc:mysql://localhost:3306/test?
至datasource.url= jdbc:mysql://docker-mysql:3306/test?
或者可以使用别名,如@g00glen00b所建议的,例如:datasource.url= jdbc:mysql://mysql:3306/test?