Bom dia.
Estou testando oque estou aprendendo no curso e me deparei com um problema que não estou conseguindo resolver.
Eu tenho um sistema simples feito em nodeJs que faz alguns crudes com o banco de dados Mysql. O problema que estou tendo e que o contêiner não esta conseguindo se comunicar com meu banco de dados que está na maquina local. Ja tentei passar o ip da minha maquina mas mesmo assim ele não encontra.
Apresenta o seguinte erro no terminal.
❯ sudo docker-compose up
Starting api-nps_app_1 ... done
Attaching to api-nps_app_1
app_1 |
app_1 | > api-nps@1.0.0 start /usr/app
app_1 | > nodemon ./src/server.js
app_1 |
app_1 | [nodemon] 2.0.6
app_1 | [nodemon] to restart at any time, enter `rs`
app_1 | [nodemon] watching path(s): *.*
app_1 | [nodemon] watching extensions: js,mjs,json
app_1 | [nodemon] starting `node ./src/server.js`
app_1 | events.js:174
app_1 | throw er; // Unhandled 'error' event
app_1 | ^
app_1 |
app_1 | Error: connect ECONNREFUSED 172.17.0.1:3306
app_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
app_1 | Emitted 'error' event at:
app_1 | at Connection._notifyError (/usr/app/node_modules/mysql2/lib/connection.js:225:12)
app_1 | at Connection._handleFatalError (/usr/app/node_modules/mysql2/lib/connection.js:156:10)
app_1 | at Connection._handleNetworkError (/usr/app/node_modules/mysql2/lib/connection.js:169:10)
app_1 | at Socket.emit (events.js:198:13)
app_1 | at emitErrorNT (internal/streams/destroy.js:91:8)
app_1 | at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
app_1 | at process._tickCallback (internal/process/next_tick.js:63:19)
app_1 | [nodemon] app crashed - waiting for file changes before starting..
Minha conexão com o banco de dados está da seguinte forma:
const mysql = require('mysql2')
const connection = mysql.createConnection({
host: '192.168.10.6',
port: 3306,
user :'root',
password: 'root123',
database: 'relatorio'
});
module.exports = connection;
Não sei porque ele não está conseguindo se conectar com o banco de dados.
Eu tenho que fazer ele funcionar chamando o Ip de fora porque no ambiente de produção o mysql já esta funcionando e só conecto com ele via IP
E meu composer está asssim:
version: "3"
services:
app:
build: .
command: npm start
ports:
- "4001:4001"
volumes:
- .:/usr/app