首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让API服务等待,直到Liquibase服务将所有更改应用到数据库

如何让API服务等待,直到Liquibase服务将所有更改应用到数据库
EN

Stack Overflow用户
提问于 2018-07-27 12:00:04
回答 1查看 289关注 0票数 0

我有三个服务。DB、API、Liquibase。API依赖于DDB和Liquibase。下面是我的compose.yml。我面临的问题是,即使我在API服务下有wait-for.sh脚本,等待DB端口可用于连接,但一旦端口准备好连接,它就会出现。但创建数据库模式并应用与数据库相关的更改的liquibase仍在开发中。因此,API服务不能连接到DB,因为该模式仍然不是由liquibase服务创建的。如何让API服务等待,直到liquibase将所有更改应用到DB上。

代码语言:javascript
复制
version: '3'
services:
   db:
    build: drs-db
    user: "1000:50"
    volumes:
      - /data/mysql:/var/lib/mysql
    container_name: drs-db
    environment:  
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    ports:
      - "3307:3306"

   drs-api:
    container_name: drs-api
    hostname: drs-api
    domainname: XX.com
    build:
      context:  ./drs-api
      args:
        DRS_API_URL: XX/${DRS_API_VERSION}
        DRS_API_WAR: drs-web-${DRS_API_VERSION}.war
        DRS_CLIENT_URL: CC/drs-client/${DRS_CLIENT_VERSION}
        DRS_CLIENT_WAR: drs-client-${DRS_CLIENT_VERSION}.war
    ports:  
      - "8096:8443"
    depends_on:
      - db
      - drs-liquibase
    command: [/usr/local/bin/wait-for-it.sh]
    links:
      - "drs-liquibase"

   drs-liquibase:
     container_name: drs-liquibase
     build:
       context: ./drs-liquibase
     environment:
       DRS_CLIENT_VERSION : ${DRS_LIQUIBASE_VERSION}
     depends_on: 
      - db
     links:
       - "db"
     command: ["/usr/local/bin/wait_for_liquibase.sh"]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 15:45:48

您可以通过共享卷使用某种临时文件。

调整wait-for以检查在迁移准备就绪时创建的文件是否存在,或者等待迁移服务删除文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51550576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档