【发布时间】:2019-06-18 15:25:09
【问题描述】:
我有 2 个 docker 容器来托管自己的服务器。我还有一个托管 SQL Server 数据库的第三个 docker 容器。每个服务器都访问这个数据库。
我的 DB docker 容器在 docker-compose.yml 中是这样配置的:
my-db:
image: microsoft/mssql-server-linux:latest
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=******
ports:
- "1433:1433"
每个服务器的连接字符串(它们是 .NET 服务器)都是
ConnectionStrings__Default=data source=my-db;initial catalog=TestDb;persist security info=True;user id=SA;password=******;
当我运行我的测试时,我从 docker 容器中获得了一个日志,该日志表明它正在设置 SINGLE_USER 模式。这显然破坏了我的测试,因为两个服务器都必须访问它。
我尝试使用数据库浏览器设置 MULTI_USER 工作...直到测试开始...然后测试套件中的数据库或其他东西将其切换回 SINGLE_USER。
如何通过 docker compose、dockerfiles 或其他任何方式配置它以不设置 SINGLE_USER 模式或专门设置 MULTI_USER 模式?
以防万一:我还使用 Selenium 进行测试,使用 circleci 进行测试自动化。
【问题讨论】:
-
我没有看到卷规范,这意味着它使用了并非真正为持久数据设计的本地可写存储。我不确定这是单用户模式的原因,但我认为它是相关的。尝试在容器中使用卷。
-
一卷?我会将它同步到什么?数据库仅驻留在 docker 容器中。我假设你的意思是我的数据库 docker 容器上的一个卷到我的主机 comp 上的某个东西?
-
您必须真的使用 SA 帐户进行连接吗?
-
@WesH 用于容器,是的。 SA 是唯一配置的帐户。当然登录后可以创建更多
-
@WesH 我猜。我是这个项目和团队的新手,所以我不知道他们为什么选择那个用户。这不是我的电话
标签: sql-server docker circleci single-user