在Stack Overflow上的其他问题中提出了类似的问题,但我似乎无法通过docker-compose将我的Dockerized Spring启动应用程序链接到我的dockerized mysql容器
这是我的docker-compose文件:
mysql:
image: mysql/mysql-server:latest
environment:
- MYSQL_ROOT_PASSWORD=C4rdi0St4t!
- MYSQL_DATABASE=icentia
ports:
- "3306:3306"
expose:
- "3306"
volumes:
- /Users/Shared/data:/var/lib/mysql
tracking:
image: icentia/tracking:latest
ports:
- "8083:8083"
- "5053:5053"
links:
- mysql:icentiadb
这是jdbc连接字符串:
url: jdbc:mysql://icentiadb/icentia?autoReconnect=true&useSSL=false
也尝试过:
url: jdbc:mysql://icentiadb:3306/icentia?autoReconnect=true&useSSL=false
如果我在没有运行容器的情况下启动我的spring启动应用程序,即通过IDE并使用localhost:3306,它可以工作,因此可以通过mysql容器的ports配置(意味着配置正确)。
这是来自Docker for Mac BTW
Spring Boot出错:
Caused by: java.net.ConnectException: Connection refused
如果我在没有构建文件中的spring boot应用程序的情况下使用docker compose启动mysql,并且只使用带有到docker compose启动的运行mysql容器的链接的run命令,它将使用此jdbc连接字符串
url: jdbc:mysql://icentiadb/icentia?autoReconnect=true&useSSL=false
任何帮助表示感谢
答案 0 :(得分:0)
好的,在这里找到了(非)问题......并且发布它时感到羞耻。
我正在使用param --no-recreate和up命令......所以它总是使用错误的先前配置。