我有两个容器 - “node.js”和“mysql”,它们都设置为位于同一网络上。执行 docker-compose up -d 会启动容器并且它们正在工作,我可以从外部分别访问“node.js”和“mysql”。
但是我无法从“node.js”连接到“mysql”。我在这里做错了什么吗?
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
env_file: .env
volumes:
- .:/app
ports:
- ${APP_PORT}:${APP_PORT}
depends_on:
- mysql
networks:
- appnet
mysql:
image: mysql:8.0
restart: always
env_file: .env
environment:
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- mysql-data:/var/lib/mysql
ports:
- ${DB_PORT}:${DB_PORT}
networks:
- appnet
networks:
appnet:
volumes:
mysql-data:
为了连接到 MySQL,我使用了“knex.js”包,它在我的本地计算机上运行良好(相同的 docker 配置)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
应该在可能构建得很糟糕的环境级别上看到,这里是一个包含 docker-compose 的链接:
https://varsubham.medium.com/nodejs-mysql-docker -compose-ad156cd0c885
希望这对你有帮助