【问题标题】:How to use an existent network with testcontainers?如何将现有网络与测试容器一起使用?
【发布时间】:2020-08-30 21:44:45
【问题描述】:

我有一个测试将在已经存在外部 docker 网络的环境中使用一些受控容器运行。

如何让我的测试容器连接到上述网络?

我尝试了下面的代码没有成功:

        public  static final GenericContainer tcpController;
        static  {
            Network network = Network.builder().id("existent-external-network").build();
            tcpController = new GenericContainer("tcp_controller:0.0.1")
                    .withExposedPorts(3005)
                    .withEnv("TCP_PORT", "3005")
                    .withNetwork(network);

            tcpController.start();
        }

基本上我想做相当于下面的 docker-compose

version: "3.4"
services:
  machine:
    image: tcp_controller:0.0.1
    environment:
      - TCP_PORT=3005
networks:
  default:
    external:
      name: existent-external-network

编辑 1:

Vitaly 的建议奏效了。

这是我根据他的建议和docs实际所做的事情

认为 TcpHandler 只是一个需要 IP 和端口的类


    public static final DockerComposeContainer compose;

    static {
        compose = new DockerComposeContainer(
                new File("src/test/java/docker-compose.yml")
        )
                .withExposedService("machine", 3005)
                .withLocalCompose(true);
        compose.start();
    }

    @BeforeAll
    static void setup() throws IOException, TimeoutException {

        settings = Settings.getInstance();
        // We need to get the actual host and port using service name
        settings.tcpURL = compose.getServiceHost("machine", 3005);
        settings.tcpPort = compose.getServicePort("machine", 3005);
        tcp = new TCPHandler(settings.tcpURL, settings.tcpPort);
        tcp.start();

    }

【问题讨论】:

    标签: docker junit testcontainers


    【解决方案1】:

    Fabio,不确定您是否尝试过 - 将 docker 与本地 compose 结合使用对您有用吗?喜欢:

    @Container
    public static DockerComposeContainer docker = new DockerComposeContainer(
            new File("src/test/resources/compose-mysql-test.yml")
    )
            .withLocalCompose(true);
    

    【讨论】:

      猜你喜欢
      • 2016-06-11
      • 2022-11-27
      • 2018-11-08
      • 2011-02-01
      • 2019-03-02
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多