【问题标题】:Sequelize in Postgres Docker Image在 Postgres Docker 映像中续集
【发布时间】:2019-01-05 01:28:40
【问题描述】:

我在我的 docker 映像中使用 sequelize 初始化数据库时遇到问题。由于 unix 套接字,我不断收到连接被拒绝的错误,因为我无法使用 localhost。

我读过how to create 一个有脚本的,但我的项目使用了sequelize。

我也尝试过使用socket connectionssocat 的各种策略

psql 命令将在我的 init 脚本中成功,但 yarn 命令或 sequelize 命令以 ERROR: connect ECONNREFUSED 127.0.0.1:5432

我的最终初始化脚本如下所示:

socat TCP-LISTEN:5432 UNIX-CONNECT:/var/run/postgresql/.s.PGSQL.5432 & yarn --cwd /root db-create

create 命令只是调用dotenv sequelize db:create

我不确定从这里去哪里。看起来这应该是一件简单的事情。我只是错过了一些明显的东西吗?

-编辑

值得指出的是,这在安装 postgres 时运行良好。当我们在数据库中启动 postgres 并在之后运行 yarn 命令时,它工作正常。这里唯一的区别是我们试图在容器启动时创建和迁移数据库,因此这不是手动过程。

【问题讨论】:

  • 什么是TCP-LISTEN?这是否对应于127.0.0.1
  • 使用 tcp->socket 是 socat 命令的一部分
  • 0.0.0.0代替TCP-LISTEN
  • socat 的工作原理不是这样吗?
  • 你对 socat 的看法是对的。你有续集的配置吗? github.com/sequelize/cli/blob/master/docs/README.md

标签: postgresql docker sequelize.js


【解决方案1】:

如果您绑定到 localhost,您应该可以在127.0.0.1:5432 上点击它

socat TCP-LISTEN:5432,bind=127.0.0.1,reuseaddr,fork UNIX-CLIENT:/var/run/postgresql/.s.PGSQL.5432 &

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2015-08-28
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2019-04-28
    相关资源
    最近更新 更多