如何在多个docker容器之间进行交互,例如ubuntu容器与selenium hub容器

时间:2019-05-16 11:52:50

标签: selenium docker docker-compose mono dockerfile

我有以下三个Docker容器 1.具有Mono的具有硒脚本(DLL)的Ubuntu容器 2.硒集线器 3. Selenium Chrome节点容器

当我构建Docker Compose文件时,所有三个容器都已启动并正在运行,Ubuntu容器会在一段时间后退出而不执行任何测试。是否有实现的想法?

我正在使用mono在Ubuntu容器中执行测试,并希望在此工作后创建一个docker映像。对此的任何解释或示例代码都非常好。

我已经创建了一个网桥,并为所有三个容器分配了静态IP。

Docker撰写文件:

version: '3.7'
services:
  seleniumhub:
      image: selenium/hub
      container_name: hubcontainer
      networks:
         ynetwork:
           ipv4_address: 172.21.0.2
      ports:
         - "4444:4444"
      privileged: true

  nodechrome:
      image: selenium/node-chrome-debug
      container_name: chromecontainer
      volumes:
      - /dev/shm:/dev/shm
      depends_on:
         - seleniumhub
      environment:
         - HUB_HOST=seleniumhub
         - HUB_PORT=4444
         - NODE_MAX_INSTANCES=5
         - NODE_MAX_SESSION=5
         - START_XVFB=false
      networks:
         ynetwork:
            ipv4_address: 172.21.0.10

  Mytests:
      container_name: Myubuntutests
      depends_on:
         - seleniumhub
         - nodechrome
      networks:
         ynetwork:
            ipv4_address: 172.21.0.11
      build:
         context: .
         dockerfile: ubuntu.Dockerfile
networks:
  ynetwork:
      name: ytestsnetwork
      driver: bridge
      ipam:
         config:
         - subnet: 172.21.0.0/16

Docker File ubuntu.Dockerfile

FROM ubuntu
COPY /bin/Debug/ /MyTests
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && apt-get update && apt-get clean && apt-get install -y wget && apt-get install -y curl && apt-get install -y nuget && apt-get install -y mono-complete && apt-get update && nuget update -self && nuget install testrunner
WORKDIR "/MyTests"
ENTRYPOINT mono /TestRunner.1.8.0/tools/testrunner.exe MyTests.dll
Docker Compose commands used (tried):
docker-compose up --build
docker-compose up --build -d

我希望Docker Compose能够构建所有三个容器并执行测试并在完成后退出

0 个答案:

没有答案