繁体   English   中英

绑定 mariadb nodejs docker-compose 时出错

[英]Error binding mariadb nodejs docker-compose

我正在使用 docker-compose 创建一个 MariaDB/NodeJS:

version: '3'
services: 
    app:
        image: node:alpine
        volumes:
          - ./:/app
        working_dir: /app
        environment:
          NODE_ENV: development
        ports:
          - 3001:3001
        command: npm run dev
    mysql_database:
        image: mariadb:latest
        restart: always
        ports:
          - "3306:3306"
        expose:
          - 3306
        volumes:
          - ./dbdata:/var/lib/mysql:rw
          - ./database.sql:/docker-entrypoint-initdb.d/database.sql
        environment:
          MYSQL_ROOT_PASSWORD: 1234

node.js 应用程序和 mysql 服务器工作正常(我可以独立连接到它们:nodejs--> localhost:3001 和指向 localhost:3306 的 MySQL WorkBrench),但是两个服务之间的连接不起作用 显示错误:connect ECONNREFUSED 127.0.0.1:3306 NodeJS applicacion require('mysql'):

var connection = mysql.createConnection({

connectionLimit: 10,
host: 'localhost',
user: 'root',
password: '1234',
database: 'biologia',
port: '3306',

所有这些都可以在不使用 docker-compose 或部署 mysql docker 的情况下正常工作,并在本地(无 docker)nodejs 指向 mysql docker 的情况下运行。

容器不知道localhost是什么。 或者更好地说 localhost 始终是容器本身,而不是您的主机 PC。

使用容器名称通过docker-compose访问它。

在您的情况下,名为mysql_database数据库容器。

改变:

host: 'localhost'

host: 'mysql_database',

当尝试从另一个( app )容器访问时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM