首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用docker组合(与调试)一起安装多个visual studio解决方案

如何使用docker组合(与调试)一起安装多个visual studio解决方案
EN

Stack Overflow用户
提问于 2020-04-25 04:48:30
回答 2查看 1.7K关注 0票数 2

很多问题似乎已经被问到如何在一个解决方案中获得多个项目,使用docker,但没有一个解决方案。

为了设置场景,我们有多个.NET核心API,每个API作为一个单独的VS 2019解决方案。它们都需要能够(至少)使用本地运行的同一个RabbitMQ容器,因为它处理服务之间的所有通信。

通过以下方法,我已经能够让这个设置在一个解决方案中工作:

  • 为API项目添加了“容器编排支持”。
  • 在我所做的解决方案中创建了一个新的对接器-撰写项目。
  • 更新了对接器-组件. and,以同时包含RabbitMQ和MongoDb映像(参见下面的图像-对不起,我无法将其正确粘贴为文本/代码):

现在,当我启动所有新的RabbitMQ和MongoDB容器时,都会创建它们。

然后,我对另一个解决方案做了完全相同的事情,而且由于RabbitMQ端口已经在使用(即它试图创建另一个新的RabbitMQ映像),所以它无法启动。

我有点期待这一点,但不知道最佳/正确的方式来正确地配置这一点,任何帮助或建议都将是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-12 10:45:26

所以我想我会回答我自己的问题,因为我认为我最终找到了一个好的(不是完美的)解决方案。我做了以下步骤:

  1. 为我的RabbitMQ创建了一个定制的对接器
  2. Server和MongoDB容器(使用我的自定义orchestration).
  3. The -为每个服务编写容器编排支持(右击API项目并选择添加容器orchestration).
  4. The)在解决方案中创建对接者-复合项目和docker-compose.override.yml
  5. I,然后编辑docker-compose.yml,以便容器使用我的自定义码头网络,并具体指定端口号(因此它们始终相同)。.yml环境变量,以便连接字符串指向码头网络上的相关容器名称(即RabbitMQ,在调试模式下,我的调试容器可以访问那些services.
  6. Now,我可以关闭VS解决方案,转到命令行,导航到解决方案文件夹,然后运行‘docker-复合’来启动容器。
  7. 按照步骤3-7在本地启动每个VS解决方案,并且可以在本地启动任何/所有服务,不再需要打开VS (前提是我不需要调试)。

H 117When

  1. 作为一个brucey奖励,我编写了PowerShell脚本使用每个停靠器-组合文件启动我的所有容器,以及在我打开自己的文件时构建它们。)我只需运行膝上型计算机,我的整个dev环境和10个服务就可以启动和运行了。

在大多数情况下,这是很好的工作,但有一些注意事项:

  • --我使用https和dev-certs,有时情况不太好,我必须清理证书/重新信任它们,因为kestrel抛出错误并期望证书被信任,有一个特定的名称,并且值得信任。我正在改进这一点,但在dev.
  • 中,您总是不能在本地使用https,如果您像我一样使用自己的nuget服务器,您将需要一个Nuget.config文件并将其复制为您的停靠文件的一部分。
票数 0
EN

Stack Overflow用户

发布于 2020-10-27 11:13:15

通过将context的值设置为适当的相对路径,我能够从多个解决方案组合多个服务。使用您的停靠-撰写示例并添加my-其他api-项目,您将得到如下结果:

代码语言:javascript
复制
services:
    my-api-project:
      <as you have it currently>

    my-other-api-project:
      image: ${DOCKER_REGISTRY-}my-other-api-project
      build:
        context: ../my-other-api-project/    <-- Or whatever the relative path is to your other project
        dockerfile: my-other-api-project/Dockerfile
      ports:
          - <your port mappings>
      depends_on:
        - some-mongo
        - some-rabbit

    some-rabbit:
      <as you have it currently>

    some-mongo:
      <as you have it currently>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61421122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档