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

时间:2018-12-06 09:34:41

标签: selenium docker docker-compose

我在gradle容器中生成了用于硒测试的报告,我正在尝试将文件从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->它运行硒测试并在容器中生成报告。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

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

services:
  selenium-hub:
    image: selenium/hub
    container_name: selenium-hub_compose
    ports:
      - "4444:4444"
    volumes:
      - ./path/to/report/folder:/host/reports

答案 1 :(得分:0)

  1. 在“虚拟”框中关闭计算机电源->在“虚拟”框中更改高级设置

  2. 转到“虚拟”框中的共享文件夹 Give Path :: C:\ DockerResults:为文件夹名称提供逻辑名称

  3. 使用以下命令在DockerTerminal中重启机器 docker-machine restart default

  4. 启动计算机后,打开“虚拟”框 在虚拟机中创建目录:sudo mkdir / Results

  5. 通过在虚拟框中执行以下命令将目录挂载到本地Windows计算机: Sudo mount –t vboxsf DockerResults /结果
  6. 在docker-compose文件中添加如下卷

音量:

    - /DockerResults:/home/Reports/