如何将在Docker容器中运行的Flyway连接到在Docker容器中运行的数据库?

问题描述 投票:1回答:1

我们使用Microsoft SQL Server作为数据库和Flyway来管理它。现在,我想通过在我自己的Docker容器中启动Docker和Flyway中的SQL Server来测试Flyway脚本,该容器包含所有配置和所有Flyway数据库脚本(迁移)。

据我所知,在Flyway配置文件中不可能使用环境变量。理想情况下,这是可能的:

flyway.url=jdbc:sqlserver://${MSSQL_SERVICE_HOST}:${MSSQL_SERVICE_PORT};databaseName=testing_pp
flyway.user=testing_pp
flyway.password=${MSSQL_SERVICE_PASSWORD}

事实上,我需要了解独立Docker和OpenShift的最佳策略。我对两者都很陌生......

有没有办法从一个运行的Docker容器注入IP地址和端口到另一个?一个不涉及Docker Compose的?在OpenShift中这样做的正确方法是什么?我知道那里的pod从所有正在运行的pod中获取主机和端口作为环境变量(参见我的假设解决方案)。但是这些变量没有得到解决,也没有解决我的问题。

你是怎么做这样的测试的?

sql-server docker flyway
1个回答
1
投票

如果我找对你,问题是关于如何在没有docker-compose的情况下连接两个docker容器。事实上,docker-compose在这些术语中并没有增加太多 - 它只是自动化了几个步骤。

要连接容器,您必须:

  1. 创建新的用户定义桥接网络(完成一次):docker network create foo
  2. 使用--network=foo启动选项将两个容器连接到此网络
  3. 指定容器名称而不是使用--name=xyz自动生成
  4. 在连接字符串中使用这些名称而不是IP地址。 qazxsw poi

现在,您可以使用docker network create foo docker run -d --rm --name=my-database --network=foo <SQLServerImageName> docker run -d --rm --name=my-flyway --network=foo <FlyWayImageName> 从Flyway连接到SQL

© www.soinside.com 2019 - 2024. All rights reserved.