dockerClient.createContainerCMD不会将Selenium节点链接到Hub

时间:2019-09-24 14:05:14

标签: java selenium docker

我正在尝试使用java-docker lib启动Selenium节点Docker容器,最后以未链接到中心的节点结束

container = dockerClient.createContainerCmd(image)
        .withExposedPorts(exposedPort)
        .withHostConfig(new HostConfig().withPortBindings(bindings))
        .withName(name)
        .withEnv("HUB_HOST=selenium-hub")
        .withEnv("HUB_PORT=4444")
        .exec();

dockerClient.startContainerCmd(container.getId()).exec();

我正在尝试模仿这样的docker-compose:

version: '3'
services:
    selenium-hub:
            restart: always
            image: selenium/hub:latest
            ports:
              - 4444:4444

    chrome:
            restart: always
            image : selenium/node-chrome-debug:latest
            ports:
              - 6001:5900
            depends_on:
              - selenium-hub
            environment:
              - HUB_HOST=selenium-hub
              - HUB_PORT=4444
            links:
              - selenium-hub:hub

因此,我认为以下内容应涵盖docker-compose中的HUB_HOSTHUB_PORT

.withEnv("HUB_HOST=selenium-hub")
.withEnv("HUB_PORT=4444")

但是,我不知道在Java中,depends_on部分应该是什么。

1 个答案:

答案 0 :(得分:0)

第一件事,如果您使用的是docker-compose,请不要使用链接。 selenium-hub:hub,因此您最好使用别名hub

("HUB_HOST=hub")

您还可以删除ENV,可以直接使用hub主机。

在docker-compose容器上,可以使用容器名称引用另一个容器,不需要衬里。

并且我还假设您正在从相同的docker-compose运行selenium-hub。

chrome:
        restart: always
        image : selenium/node-chrome-debug:latest
        ports:
          - 6001:5900
        depends_on:
          - selenium-hub
        environment:
          - HUB_HOST=selenium-hub
          - HUB_PORT=4444