【问题标题】:Mountebank imposter ports not accessible when mountebank started using dotnet-testcontainersMountebank 开始使用 dotnet-testcontainers 时无法访问 Mountebank 冒名顶替者端口
【发布时间】:2021-11-30 07:11:06
【问题描述】:

我正在使用dotnet-testcontainers https://github.com/HofmeisterAn/dotnet-testcontainers 在我的 xUnit 测试中使用 mountebank 启动一个容器。 我可以成功创建 mountebank 客户端并成功创建冒名顶替者。 问题是,当测试运行时,应用程序尝试调用 http://localhost:3000 上的冒名顶替者并被拒绝连接。

我可以成功打开http://localhost:2525,可以看到Mountebank默认页面。所以mountebank运行良好。我还通过查看 docker 容器日志确认了在端口 3000 上成功创建了冒名顶替者。 我还尝试使用 Postman 拨打我的冒名顶替者 http:localhost:3000 并拒绝连接。

可能是什么问题?这是docker容器中的端口3000没有暴露的问题吗?以下是我的代码:

MountebankClient mbClient = new MountebankClient();

var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()
                .WithImage("bbyars/mountebank")
                .WithName("mountebank")
                .WithPortBinding(2525, false)
                .WithHostname("localhost");

var testContainers = testcontainersBuilder.Build();
await testContainers.StartAsync();

var testImposter = mbClient.CreateHttpImposter(3000);
testImposter.AddStub().ReturnsBody(HttpStatusCode.OK, File.ReadAllText(@".\Stubs\testImposter.json"));
mbClient.Submit(testImposter);

【问题讨论】:

    标签: docker mountebank service-virtualization


    【解决方案1】:

    可能对遇到此问题的其他人有用。弄清楚问题出在哪里。我没有在容器中映射主机端口和冒名顶替者端口。阅读已发布的端口https://docs.docker.com/config/containers/container-networking/ 并使用WithExposedPort(3000),然后使用WithPortBinding(3000,3000) 将该端口与主机端口进行端口绑定,其中此方法中的first 端口是主机端口,second 端口是容器端口。

    var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()
            .WithImage("bbyars/mountebank")
            .WithName("mountebank")
            .WithPortBinding(2525, 2525)
            .WithExposedPort(3000)
            .WithExposedPort(3100)
            .WithPortBinding(3000, 3000)
            .WithPortBinding(3100, 3100)                 
            .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(2525))
            .WithHostname("localhost");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多