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 主要被你的路由器使用。
我想创建一个 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 主要被你的路由器使用。