【问题标题】:How to set flyway config in continuous deployment pipeline using Travis CI and Azure?如何使用 Travis CI 和 Azure 在持续部署管道中设置 flyway 配置?
【发布时间】:2019-06-20 20:18:37
【问题描述】:

我在 NodeJS 应用程序中使用 flyway 进行数据库迁移。 通过 Travis CI 构建应用程序的 docker 映像,该映像被推送到 Azure 容器注册表。从那里,一个 web-hook 获取图像并在 azure 应用服务中启动一个容器实例。

我很难通过环境。 flyway migrate cli 命令的特定数据库连接配置。

在应用服务中将连接详细信息添加为应用程序设置,但未传递给 docker run 命令。不过,一旦应用程序启动,这些设置似乎就可以使用。

无法使用 Travis CI 环境。变量,因为连接细节因环境而异。

寻求帮助,如果有人解决了类似的问题。

【问题讨论】:

    标签: azure azure-web-app-service flyway azure-container-service


    【解决方案1】:

    我找到了解决这个问题的方法。想法会发布解决方案,因为其他人可能会觉得它有帮助。

    首先,我需要有 env。具体的数据库连接细节: 为此,我在 Azure App Service 中配置了参数,并在 TravisCI 构建脚本中使用 CLI 命令检索了它。

    其次,我需要将数据库配置作为环境变量传递给 docker 容器。由于 Azure 应用服务不允许我们更改 docker run 命令,因此我们无法在启动 docker 容器时传递显式环境配置。

    所以为了克服这个限制,

    我为 docker build 命令设置了构建参数(参见set build time variables)以传递环境。 docker build 的特定数据库连接详细信息。

    由于构建参数不会保留到最终构建映像,因此我必须使用 ENV 命令将它们转换为环境变量。见setting docker environment variables

    现在数据库连接参数可作为 env 使用。 docker启动时配置。因此,docker start 上的flyway migrate 命令能够毫无问题地连接到数据库。

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 2016-05-26
      • 2020-07-05
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多