Javascript 将mysql docker容器连接到外部应用程序

Javascript 将mysql docker容器连接到外部应用程序,javascript,mysql,node.js,docker,network-programming,Javascript,Mysql,Node.js,Docker,Network Programming,我正在尝试将在Docker容器上运行的MySQL数据库服务器连接到对话。我一直在开发一个聊天机器人。Docker容器位于安装了hypriot的覆盆子pi上。目前正在对话中。我有一个应用程序 var mysql = require('promise-mysql'); var db = { host: "???", user: "root", password: "password", database: "TimeTracker" }; var pool = mys

我正在尝试将在Docker容器上运行的MySQL数据库服务器连接到对话。我一直在开发一个聊天机器人。Docker容器位于安装了hypriot的覆盆子pi上。目前正在对话中。我有一个应用程序

var mysql = require('promise-mysql');
var db = {
    host: "???",
    user: "root",
    password: "password",
    database: "TimeTracker"
};
var pool = mysql.createPool(db);

  function ConnectToMysql(context, req, res) {

    console.log("==> ConnectToMysql");
    var query = "SELECT * FROM BTSTT";
    return pool.query(query, [])
        .then(function(rows) {
            console.log("== ConnectToMysql rows:%o",rows);
            if (rows.length) {
                var row = rows[0];
                return res.say(row);
            } else {
                return false;
            }
        })
        .catch(function(err) {
            console.log("<== ConnectToMysql catch:"+err.message);
            return false;
        });
}
var mysql=require('promise-mysql');
var db={
主持人:“??”,
用户:“根”,
密码:“密码”,
数据库:“时间跟踪器”
};
var pool=mysql.createPool(db);
函数ConnectToMysql(上下文、请求、res){
log(“==>ConnectToMysql”);
var query=“从BTSTT中选择*”;
返回pool.query(查询,[]))
.then(函数(行){
log(“==ConnectToMysql行:%o”,行);
if(行数.长度){
变量行=行[0];
返回res.say(row);
}否则{
返回false;
}
})
.catch(函数(err){

console.log(“您可以分享您如何在raspberry pi上创建mysql容器,即您正在使用的Dockerfile和/或完整的
docker run…
命令。我怀疑您需要在主机上公开容器端口,即
docker run[image]-p[主机端口]:[容器端口]
@stefaner感谢您的回复。我使用的命令是:docker run-p3306:3306--name mysql\u container-e mysql\u ROOT\u PASSWORD=PASSWORD-d hyprio/rpi mysql:latest。我使用的portainer命令是:docker run-d-p80:9000-v/var/run/docker.sock:/var/run/docker.sock-v portainer\u data:/data portainer/portainer/portainer/portainer/portainer