【发布时间】:2020-03-30 07:53:17
【问题描述】:
我正在使用 Spring Boot 和 Docker。我正在使用 connectionService.java 返回 connection 来执行某些任务。这个连接字符串有jdbc:mysql://localhost/databaseName?autoReconnect=true&useSSL=false。如果我正在运行应用程序,则它运行良好,但如果我构建 docker 映像,则此连接字符串应替换为 jdbc:mysql://docker-mysql/databaseName?autoReconnect=true&useSSL=false。因为 docker-image 的配置是 docker-mysql 而不是 localhost 。
ConnectionService.java
@Service
public class ConnectionService {
public Connection createConnection() throws SQLException {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/databaseName?autoReconnect=true&useSSL=false", "root", "root");
return connection;
}
}
Docker-compose
version: '3'
services:
docker-mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=databaseName
- MYSQL_USER=root
- MYSQL_PASSWORD=root
ports:
- 3307:3306
app:
image: app:latest
ports:
- 8080:8080
depends_on:
- docker-mysql
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://docker-mysql/databaseName?autoReconnect=true&useSSL=false
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=root
错误:马上。我遇到了错误通信链接故障。 我怎么能做到这一点,相同的代码适用于运行应用程序以及构建 docker 映像时。
【问题讨论】:
标签: java spring-boot docker spring-mvc