【问题标题】:Dockerized postgres - wait in nodejs for postgres to startDockerized postgres - 在 nodejs 中等待 postgres 启动
【发布时间】:2021-05-12 17:34:51
【问题描述】:

我正在从 nodejs 测试环境启动 docker,然后运行集成测试。我必须使用类似的东西:

setTimeout(test, 3000);

否则 postgres 可能还没有运行。

节点中有没有办法等待从端口 5432 开始的 postgres? This answer 看起来很有希望,但它在bash 中使用了while,我需要我的解决方案才能在节点中工作以实现跨平台。谢谢!

【问题讨论】:

    标签: node.js postgresql docker


    【解决方案1】:

    我曾使用is-port-reachable 完成类似的任务。

    检查端口是否打开所需要做的只是

    await isPortReachable(5432, {host: 'PG_HOST'});
    

    如果您将 PG 绑定到主机上的 5432,则将 PG_HOST 替换为 localhost,否则将其替换为容器的主机名,例如 docker-compose 生成;例如mytestproj_postgresql_1

    另一个我没有使用但看起来很有希望的选项是tcp-port-used

    【讨论】:

      【解决方案2】:

      也许您可以简单地尝试锁定 5432 端口,如果它被使用,那么您可以继续前进。

      【讨论】:

        猜你喜欢
        • 2017-07-01
        • 1970-01-01
        • 2021-05-26
        • 2021-08-14
        • 2019-03-15
        • 2015-08-19
        • 1970-01-01
        • 1970-01-01
        • 2021-02-13
        相关资源
        最近更新 更多