Troubleshooting Node.js to MySQL Connection Issues with Docker-Compose

preview_player
Показать описание
---

Visit these links for original content and any more details, such as alternate solutions, latest updates/developments on topic, comments, revision history etc. For example, the original title of the Question was: Issue connecting Node server to MySQL when both images are running on docker-compose

If anything seems off to you, please feel free to write me at vlogize [AT] gmail [DOT] com.
---

Understanding the Issue

The error typically occurs when the Node server attempts to establish a connection with the MySQL database while the database is still starting or not accessible. When using Docker, it's important to remember that services run in isolated environments, and the address and network configurations must promote proper communication.

The Situation

In a specific scenario, you might encounter an error during your Docker build process, particularly on the line where you run TypeORM migrations because the server cannot access the MySQL database. The specific error you may see reads:

[[See Video to Reveal this Text or Code Snippet]]

This happens because the server is trying to connect to the db service using 127.0.0.1, which points to the server container itself and not the MySQL container.

Solutions to the Connection Problem

Let’s break down how to fix this issue into clear steps:

1. Modify the Dockerfile

Initially, the Dockerfile looks like:

[[See Video to Reveal this Text or Code Snippet]]

However, these lines are executing at build time when the database may not yet be ready to accept connections. To resolve this, you need to adjust where these commands are placed.

[[See Video to Reveal this Text or Code Snippet]]

3. Remove Deprecated Migrations from Build Phase

By removing the RUN yarn typeorm:migrate and RUN yarn typeorm:run-migrations lines from the Dockerfile, you prevent your Docker build process from attempting to connect to the database prematurely.

4. Ensure Proper Networking

[[See Video to Reveal this Text or Code Snippet]]

5. Test the Configuration

After making changes, rebuild your containers with:

[[See Video to Reveal this Text or Code Snippet]]

Watch the logs to ensure that your server and database are starting correctly, and that migrations are running as expected.

Conclusion

Рекомендации по теме
visit shbcf.ru