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



我在gradle容器中为硒测试生成了报告,我正在尝试将文件从docker容器复制到本地主机。作为一种变通方法,我使用dockercp将文件从容器复制到本地,它很有效。如何实现它与docker组成卷。

下面是我的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-卷驱动程序
  • 类似问题:如何在docker compose中将主机目录装载为卷
  1. 在虚拟箱中关闭机器->更改虚拟箱中的高级设置

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

  3. 使用以下命令在DockerTerminal中重新启动机器码头机器重启默认

  4. 机器启动后,打开虚拟箱在虚拟机中创建一个目录:sudo mkdir/Results

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

卷:

- /DockerResults:/home/Reports/

最新更新