我有两个docker容器:mysql和spring boot服务。
服务容器未连接到mysql容器(在部署时失败),但存在以下异常:
CommunicationsException: Communications link failure
到目前为止,我已经尝试使用docker --link,docker网络,使用/不使用docker compose来运行所有内容。
我能够连接到Docker外部的数据库容器。
连接字符串:jdbc:mysql://db:3306/somedb
docker-compose.yml
version: '3.7'
services:
app:
build: .
restart: unless-stopped
ports:
- "80:8060"
links:
- db
depends_on:
- db
db:
image: "mysql:latest"
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_DATABASE=somedb
- MYSQL_ROOT_PASSWORD=somepassword
ports:
- "3306:3306"
volumes:
- /Users/someuser/someproject/mysql/data:/var/lib/mysql
答案 0 :(得分:0)
我之前有同样的问题,我尝试通过更改mysql映像版本来解决。这是我可以连接的yaml文件。
version: "3.0"
services:
spring-boot-container:
build: .
ports:
- "8086:8086"
links:
- mysql-standalone
mysql-standalone:
image: mysql:5.6
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: springsecurity
MYSQL_USER: sa
MYSQL_PASSWORD: password
答案 1 :(得分:0)
所以在我的服务dockerfile中,我说:
ADD target/app-1.0-SNAPSHOT.jar /app-service.jar
RUN sh -c 'touch /app-service.jar'
但是在服务配置文件中进行更改后,我忘记了重建jar
TL; DR我很聪明