微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 MySQL db 连接到 docker env 中的 Loopback4 App

如何解决将 MySQL db 连接到 docker env 中的 Loopback4 App

我实际上正在开发一个 loopback4 应用程序来发现这项技术,但我不知道如何将本地 MysqL 服务连接到我的应用程序。

我所有的 env 都是通过 docker-compose 设置的:我目前有一个 MysqL 服务来存储我的数据,一个 PHPmyadmin 服务与之交互,还有一个 cms 服务,这是我的环回应用程序。

首先使用 docker-compose.yml 来设置 MysqLPHPmyadmin:

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 举报,一经查实,本站将立刻删除。