[英]How to make 2 containers with sql server and dotnet app communicate with each other?
我在Azure DevOps管道中具有以下项目布局。
在托管的Ubuntu代理上:
(a)容器“ A”在docker容器(mcr.microsoft.com/mssql/server)内运行mssql服务器,该容器向守护程序公开端口1433
(b)容器“ B”包含所有构建了dotnet核心应用程序的回购文件。 此容器还包含数据库迁移文件(.cs文件)。
容器B使用run命令启动,并且入口点按以下顺序运行2个脚本:
1)处理数据库的创建和迁移2)运行项目:与数据库通信的后端api
dotnet项目通过此ConnectionString与数据库进行通信:
"Database": "Server=localhost,1433; Database=MyAwesomeDatabase; User=sa; Password=MyAwesomePassword; MultipleActiveResultSets=True;"
在第二步中,容器B暴露端口55111,以针对API运行测试。
管道中还包含其他操作,但这是与我的问题相关的操作。
如何使这两个容器正确通信,以便在容器A上完成数据库迁移,并使容器B中的API与之连接?
给您的容器起一个有意义的名称(或使用自动为其命名的服务),将它们放在相同的Docker网络上(取决于您的情况,使用覆盖或桥接),然后将容器的名称用作主机名。
因此,如果您的数据库容器名为“ mydb”,则您的连接字符串将变为:
"Database": "Server=mydb,1433; Database=MyAwesomeDatabase; User=sa; Password=MyAwesomePassword; MultipleActiveResultSets=True;"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.