为什么我不能从其他容器访问docker容器中的postgres

时间:2020-06-12 16:48:38

标签: node.js postgresql docker docker-compose

我有一个docker-compose.yml文件,该文件初始化节点容器和postgres容器。看起来像这样:

version: "3.7"
services:
    server:
        build: .
        command: npm start
        ports:
            - "3000:3000"
        environment:
            - DB_HOST=db
        depends_on:
            - db
    db:
        container_name: "service__db"
        image: postgres
        ports:
            - "5432:5432"
        environment:
            - POSTGRES_USER=user
        volumes:
            - my_dbdata1:/var/lib/postgresql/data
volumes:
    my_dbdata1:

这两个容器都上线了,我可以将它们挂接到其中,并且端口可用。但是,我无法从节点容器访问postgres容器。当我登录process.env.DB_HOST时,我得到一个文字字符串; 'db'。我还使用sequelize作为ORM,但无法运行迁移。我没有看到错误或任何东西,先进行序列化然后停下来

compose.yml文件中缺少我什么吗?

我想提到的一件重要的事情是,这是在Mac上本地运行的

1 个答案:

答案 0 :(得分:0)

您能使用这个吗?

version: "3.7"
services:
    server:
        build: .
        command: npm start
        ports:
            - "3000:3000"
        environment:
            - POSTGRES_HOST ='db'
        depends_on:
            - db
    db:
        container_name: "service__db"
        image: postgres
        ports:
            - "5432:5432"
        environment:
            - POSTGRES_USER=user
        volumes:
            - my_dbdata1:/var/lib/postgresql/data
volumes:
    my_dbdata1: