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

Ash*_*nan 5 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
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以帮忙吗?

Akc*_*tor 5

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

services:
  selenium-hub:
    image: selenium/hub
    container_name: selenium-hub_compose
    ports:
      - "4444:4444"
    volumes:
      - ./path/to/report/folder:/host/reports
Run Code Online (Sandbox Code Playgroud)


Ash*_*nan 1

    \n
  1. 关闭虚拟盒中的计算机电源 -> 更改虚拟盒中的高级设置

  2. \n
  3. 转到虚拟框中的共享文件夹\n指定路径 :: C:\\DockerResults : 指定文件夹名称的逻辑名称

  4. \n
  5. 使用以下命令在 DockerTerminal 中重新启动计算机\ndocker-machine restart default

  6. \n
  7. 计算机启动后,打开虚拟框\n在虚拟机中创建一个目录: sudo mkdir /Results

  8. \n
  9. 通过在虚拟框中执行以下命令将目录挂载到本地 Windows 计算机: \nSudo mount \xe2\x80\x93t vboxsf DockerResults /Results
  10. \n
  11. 在 docker-compose 文件中添加如下卷
  12. \n
\n\n

卷:

\n\n
    - /DockerResults:/home/Reports/\n
Run Code Online (Sandbox Code Playgroud)\n