selenium - 如何在docker-machine中使用docker-compose将文件从docker容器复制到主机

标签 selenium docker docker-compose

我在 gradle 容器中为我的 selenium 测试生成了报告,我正在尝试将文件从 docker 容器复制到本地主机。作为一种解决方法,我使用 docker cp 将文件从容器复制到我的本地,并且可以正常工作。如何使用 docker-compose 卷实现它。

下面是我的 docker-compose.yml

version: "3 "
services:
  selenium-hub:
    image: selenium/hub
    container_name: selenium-hub_compose
    ports:
      - "4444:4444"
  chrome:
    image: selenium/node-chrome-debug
    container_name: selenium-chrome
    depends_on:
      - selenium-hub
    ports:
      - "5900"
    environment:
      - http_proxy=http://x.x.x.x:83
      - https_proxy=http://x.x.x.x:83
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
  gradle:
   image: gradle:jdk8
   container_name: selenium-gradle
   build:
      context: .
      dockerfile: dockerfile

我运行命令 docker-compose up -> 它运行 selenium 测试并在容器中生成报告。

任何人都可以帮忙吗?

最佳答案

将数据从容器传递到主机的正常方法是使用 docker 卷。
简而言之,您指定一个主机目录并将其映射到容器内的目录。该目录应该用于保存您的测试报告

services:
  selenium-hub:
    image: selenium/hub
    container_name: selenium-hub_compose
    ports:
      - "4444:4444"
    volumes:
      - ./path/to/report/folder:/host/reports
  • 查看 docker 文档
    https://docs.docker.com/compose/compose-file/#/volumes-volumedriver
  • 类似问题:
    How do I mount a host directory as a volume in docker compose
  • 关于selenium - 如何在docker-machine中使用docker-compose将文件从docker容器复制到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53648312/

    相关文章:

    docker - Docker组成当另一个停止时启动容器

    mongodb - MongoDB 的 docker-compose.yml 数据不会持久保存到主机卷

    如果在没有 shell 的情况下运行,Ruby 将以退出代码 1 响应 TERM 退出

    python-3.x - AWS Lambda 无法找到 app.handler(自定义 Docker 镜像)

    c# - Selenium Webdriver C# Sendkeys (Keys.Arrowdown)

    wpf - Web 和 WPF 应用程序的自动化解决方案

    Python manage.py runserver 正在运行,但无法访问站点

    python - Docker与Django一起编写: 'ascii'编解码器无法解码位置7的字节0xcd:序数不在范围内(128)

    ruby - 在 ruby​​ selenium 中捕获超时事件

    Python 和 Selenium 查找名称不准确的元素