如何解决将 MySQL db 连接到 docker env 中的 Loopback4 App
我实际上正在开发一个 loopback4 应用程序来发现这项技术,但我不知道如何将本地 MysqL 服务连接到我的应用程序。
我所有的 env 都是通过 docker-compose 设置的:我目前有一个 MysqL 服务来存储我的数据,一个 PHPmyadmin 服务与之交互,还有一个 cms 服务,这是我的环回应用程序。
首先使用 docker-compose.yml 来设置 MysqL 和 PHPmyadmin:
version: "3.5"
services:
MysqL:
image: MysqL:5.7
container_name: MysqL
restart: always
volumes:
- ./volumes/MysqL/:/var/lib/MysqL
networks:
- MysqL_network
environment:
MysqL_ROOT_PASSWORD: passroot
PHPmyadmin:
image: PHPmyadmin/PHPmyadmin:4.8
restart: always
networks:
- MysqL_network
ports:
- 8890:80
environment:
PMA_HOST: MysqL
networks:
MysqL_network:
name: MysqL_network
第二个设置环回应用程序:
version: "3.5"
services:
cms:
build:
context: ./cms
dockerfile: Dockerfile
restart: always
ports:
- "8885:3000"
networks:
- "my_network"
- "MysqL_network"
tty: true
environment:
MysqL_HOST: MysqL
MysqL_USER: root
MysqL_PASSWORD: passroot
MysqL_DATABASE: example
API_URL: "http://cms:3000"
networks:
my_network:
MysqL_network:
external: true
我按照文档 (https://loopback.io/doc/en/lb4/MySQL-connector.html) 创建了我的数据库连接器和模型。但是在运行它时仍然有“握手不活动超时”。我尝试通过 acquireTimeout
配置值在超时前添加时间,但这并没有改变任何东西。
const config = {
name: 'example',connector: 'MysqL',host: process.env.MysqL_HOST,port: process.env.MysqL_PORT || 3306,user: process.env.MysqL_USER,password: process.env.MysqL_PASSWORD,database: process.env.MysqL_DATABASE,connectTimeout: 30000,acquireTimeout: 30000
};
我确定我错过了一个愚蠢的细节,但我不知道是什么。有人有线索吗?
提前致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。