I am trying nocodb in docker.
I have a mysql server for which I have setup a specific username nocodb with a password. This user has all permissions on the object nocodb_test_1 database. The mysql server runs with container name
I have launched a nocodb server also in docker. I have added it to the network with
docker network connect mysql nocodb.
The nocodb server runs on the docker network
mysql with container name
Both machines are connected via the docker network. To test, I do
docker exec -it nocodb sh and then inside
ping mysql-prod-5.7 and the mysql responds.
(I prepared an image to set here but the forum does not allow me to upload images)
The mysql server is properly configured because if I enter from a client machine, like with
docker run --rm -it --network mysql mysql bash and then inside I connect with
mysql -h mysql-prod-5.7 -u nocodb -p and after hitting enter I paste the password, I may enter the MySQL machine. Then
show databases; I see the
nocodb_test_1. Then I
use nocodb_test_1 and it works.
(I prepared a second image to set here but the forum does not allow me to upload images)
- MySQL properly setup, with a database and a user/pwd able to connect to that DB.
- NocoDB container able to speak to the mysql container.
Then I in the frontend, I create a new connection and set all the parameters and then TEST the connection I get the “getaddrinfo ENOTFOUND”:
(I prepared a final image to set here but the forum does not allow me to upload images)
In the firefox debugger I truly see the frontend sending a POST request to the backend with the connection data.
How is it possible that the backend does not know how to resolve the host
mysql-prod-5.7 when a ping actually works?
The only thing I may think if is that nocodb is using a non-mature library to resolve networking and as the name contains a dot, the library gets confused.
Any help on how to debug (and correct) this will be welcome!
PD: Solution cannot be “try a docker container with a name without a dot”.