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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.