Postgresql Docker文件等待postgres容器
您好,我的节点项目中出现以下错误: (节点:51)未处理的PromisejectionWarning:错误:getaddrinfo ENOTFOUND${DB_HOST} 我想问题是,当我的项目开始时,我的postgress还没有开始 所以我想不出一个解决方案,在我的postgres准备好之后如何启动我的容器,我读了一些关于Dockerze的文章,但我无法想象如何应用 我的docker文件:Postgresql Docker文件等待postgres容器,postgresql,docker,docker-compose,Postgresql,Docker,Docker Compose,您好,我的节点项目中出现以下错误: (节点:51)未处理的PromisejectionWarning:错误:getaddrinfo ENOTFOUND${DB_HOST} 我想问题是,当我的项目开始时,我的postgress还没有开始 所以我想不出一个解决方案,在我的postgres准备好之后如何启动我的容器,我读了一些关于Dockerze的文章,但我无法想象如何应用 我的docker文件: FROM node:lts-alpine RUN mkdir -p /home/node/api/no
FROM node:lts-alpine
RUN mkdir -p /home/node/api/node_modules && chown -R node:node /home/node/api
WORKDIR /home/node/api
COPY ormconfig.json .env package.json yarn.* ./
USER node
RUN yarn
COPY --chown=node:node . .
EXPOSE 4000
CMD ["yarn", "dev"]
version: '3.7'
services:
ci-api:
build: .
container_name: ci-api
volumes:
- .:/home/node/api
- /home/node/api/node_modules
ports:
- '${SERVER_PORT}:${SERVER_PORT}'
depends_on:
- ci-postgres
networks:
- ci-network
ci-postgres:
image: postgres:12
container_name: ci-postgres
ports:
- '${DB_PORT}:5432'
environment:
- ALLOW_EMPTY_PASSWORD=no
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
- POSTGRES_DB=${DB_NAME}
volumes:
- ci-postgres-data:/data
networks:
- ci-network
volumes:
ci-postgres-data:
networks:
ci-network:
driver: bridge
我的码头工人作文:
FROM node:lts-alpine
RUN mkdir -p /home/node/api/node_modules && chown -R node:node /home/node/api
WORKDIR /home/node/api
COPY ormconfig.json .env package.json yarn.* ./
USER node
RUN yarn
COPY --chown=node:node . .
EXPOSE 4000
CMD ["yarn", "dev"]
version: '3.7'
services:
ci-api:
build: .
container_name: ci-api
volumes:
- .:/home/node/api
- /home/node/api/node_modules
ports:
- '${SERVER_PORT}:${SERVER_PORT}'
depends_on:
- ci-postgres
networks:
- ci-network
ci-postgres:
image: postgres:12
container_name: ci-postgres
ports:
- '${DB_PORT}:5432'
environment:
- ALLOW_EMPTY_PASSWORD=no
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
- POSTGRES_DB=${DB_NAME}
volumes:
- ci-postgres-data:/data
networks:
- ci-network
volumes:
ci-postgres-data:
networks:
ci-network:
driver: bridge
这是我的.env
SERVER_PORT=4000
DB_HOST=ci-postgres
DB_PORT=5432
DB_USER=spirit
DB_PASS=api
DB_NAME=emasa_ci
您可以参考下面的
docker compose.yml
,其中依赖于
,healthcheck
和链接作为web服务依赖于db服务而添加
参考:
您可以参考下面的docker compose.yml
,其中依赖于
,healthcheck
和链接作为web服务依赖于db服务而添加
参考:
看这个解决方案:我很困惑,我是新来的docker,你能帮我吗?看这个解决方案:我很困惑,我是新来的docker,你能帮我吗?