强制 Docker 容器等待 Postgresql 容器准备就绪

问题描述

考虑 Dockerfile:

Dockerfile:

FROM node:14
COPY . /app
RUN npm i
RUN npm run build_database_migrations <<<<====== This is the problematic command

... more commands 

使用 sequelize-cli :

在 package.json 中:

"scripts": {
   "build_database_migrations": "sequelize db:migrate",}

还有 Docker-compose :

Docker-compose.yaml

version: "3"
services:
  
  postgresql:
    image: postgres:latest
    environment:
      POSTGRES_USER: user1
      POSTGRES_PASSWORD: pass1
      POSTGRES_DB: somedb      
    ports:
      - "5432:5432"
 
  app:    
    build:
      context: ./employee
      dockerfile: ./Dockerfile
    ports:
      - "9000:9000"
    restart: on-failure
    depends_on:    
      - postgresql      
    links:
      - postgresql

每当我运行 Docker-compose up 时,app 都不会等待 postgresql 启动并运行, 这导致在 Postgreqsql 容器侦听端口 app 之前构建 RUN npm run build_database_migrations 容器并运行命令 5432

我们如何强制 app 容器等待 Postreqsql 容器准备就绪并监听端口 5432 ,以便它能够在实时 Postgresql 容器上运行迁移?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...