docker-编写 postgres 和 nodejs

docker-compose postgres and nodejs

我想创建一个 docker-compose 来启动 2 个容器:一个是我的 NodeJS API 和另一个 Postgresql DB。但是 我不希望数据库可以通过 Internet 访问,而只能通过 API 访问,因为只有 API 应该联系它,没有其他人可以联系。 我创建了一个网络,但没有发布数据库端口 (5432),但是当我尝试 运行 我的 docker-compose 时,我收到了一个我不明白的错误。

这是 docker-compose up 期间的错误:

我的 Dockerfile :

FROM node:16.15.0
WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install
COPY . .
EXPOSE 3001
CMD npm start

还有我的 docker-compose :

version: "3"

services:
    api_nodejs:
        build: .
        depends_on:
            - db
        ports:
            - ${APP_PORT}:3001
        command: npm start
        volumes:
            - .:/app/
            - /app/node_modules
        networks:
            my_network:
                ipv4_address: 192.168.0.1

    db:
        image: postgres:14.3
        restart: always
        environment:
            - POSTGRES_DB=${DB_NAME}
            - POSTGRES_USER=${DB_USERNAME}
            - POSTGRES_PASSWORD=${DB_PASSWORD}
        networks:
            my_network:
                ipv4_address: 192.168.0.2

networks:
    my_network:
        ipam:
            driver: default
            config:
                - subnet: 192.168.0.0/24

您的错误“地址已在使用”

你给你的容器 api_nodejs IP 192.168.0.1,这个 IP 主要被你的路由器使用。