等待pg启动docker run

时间:2020-05-31 21:27:21

标签: postgresql docker

我有此错误:

(节点:51)UnhandledPromiseRejection警告:错误:getaddrinfo ENOTFOUND $ {DB_HOST}

然后我发现问题出在我的docker-compose 基本上postgres尚未初始化,所以我遇到了这个错误

我尝试使用以下命令:

command: ['./wait-for-it/wait-for-it.sh', 'db:5432', '--', 'yarn', 'dev']

但是我得到了这个错误:

api    | internal/modules/cjs/loader.js:969
ci-api    |   throw err;
ci-api    |   ^
ci-api    |
ci-api    | Error: Cannot find module '/home/node/api/wait-for-it/wait-for-it.sh'
ci-api    |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
ci-api    |     at Function.Module._load (internal/modules/cjs/loader.js:842:27)
ci-api    |     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
ci-api    |     at internal/main/run_main_module.js:17:47 {
ci-api    |   code: 'MODULE_NOT_FOUND',
ci-api    |   requireStack: []
ci-api    | }

我的docker文件:

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"]

我的docker-compose:

version: '3.7'
services:
  db-pg:
    image: postgres:12
    container_name: db-pg
    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

  ci-api:
    build: .
    container_name: ci-api
    volumes:
      - .:/home/node/api
      - /home/node/api/node_modules
    ports:
      - '${SERVER_PORT}:${SERVER_PORT}'
    depends_on:
      - db-pg
    command: ['./wait-for-it/wait-for-it.sh', 'db:5432', '--', 'yarn', 'dev']
    logging:
      driver: 'json-file'
      options:
        max-size: '10m'
        max-file: '5'

volumes:
  ci-postgres-data:

我想知道如何解决这个问题

1 个答案:

答案 0 :(得分:-1)

我从来没有遇到过这个问题,但是在我看来,您的环境变量$ {DB_HOST}设置不正确。如果您将所有内部文件与此docker-compose文件一起使用,则应将其连接到db-pg:5432

相关问题