Após rodar no docker estou tomando erro de conexão com o banco... como consigo fazer a imagem chegar no banco de dado na outra imagem? com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Após rodar no docker estou tomando erro de conexão com o banco... como consigo fazer a imagem chegar no banco de dado na outra imagem? com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Tentando dessa forma com um docker-compose mas a imagem não sobe...
version: "3.7"
services:
db:
image: mysql:8.1
command: --default-authentication-plugin=mysql_native_password --general_log=ON --bind_address=0.0.0.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: "%"
volumes:
- ./~mysql-data:/var/lib/mysql
ports:
- 3306:3306
networks:
- mysql-compose-network
adminer:
image: adminer
restart: always
ports:
- 8282:8080
networks:
- mysql-compose-network
node:
build:
dockerfile: Dockerfile
context: .
image: khipu/openjdk17-alpine
container_name: jornadamilhas
ports:
- 3080:8080
networks:
- mysql-compose-network
depends_on:
- "db"
networks:
mysql-compose-network:
driver: bridge
E aí, Lincoln!
Esse erro de "Communications link failure" no MySQL via Docker é meio chato, mas a gente resolve! Parece que tá rolando algum problema na comunicação entre a imagem do MySQL e o restante da galera no Docker-compose.
Primeiro, certifica de que os serviços estão na mesma rede. Vi que você tá usando mysql-compose-network
, o que é um bom começo. Agora, já tentou trocar o host de conexão no seu aplicativo para o nome do serviço no Docker-compose? No seu caso, seria algo como db
ou mysql
. Tipo assim:
spring.datasource.url=jdbc:mysql://db:3306/seubanco
Ah, e tem um detalhezinho na configuração do MySQL no Docker-compose. Tira a linha --bind_address=0.0.0.0
do command
do serviço de banco de dados. Isso pode tá causando umas tretas na comunicação. A configuração do MySQL dentro do container já tá boa sem isso.
Depois dessas paradas, sobe tudo de novo com um docker-compose up --build
e veja se agora rola uma conexão suave.