繁体   English   中英

如何使2个容器与sql server和dotnet app相互通信?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM