如何将文件复制到Docker卷并通过docker-compose使用该卷

时间:2019-02-08 17:33:39

标签: docker docker-compose docker-volume

  • 在Docker容器中运行着一个Web服务。
  • 此网络服务依赖于大型json文件进行引导。

我创建了一个Docker卷以docker volume create my-api-files存储json文件。

这是Web服务的docker-compose文件:

version: '3'

services:
  my-api:
    image: node:alpine
    expose:
      - ${NODE_PORT}
    volumes:
      - ./:/api
      - my-api-files:/files
    working_dir: /api
    command: npm run start

volumes: 
  my-api-files: 
    external: true

现在,如何在用my-api-files启动Web服务之前将json文件复制到docker-compose up码头工人卷上?

1 个答案:

答案 0 :(得分:0)

您可以运行具有该卷的临时容器,并绑定到主机文件并从那里运行副本:

docker run --rm -it -v my-api-files:/temporary -v $PWD/jsonFileLocation:/big-data alpine cp /big-data/*.json /temporary
docker run --rm -it -v my-api-files:/test alpine ls /test

您应该在其中看到JSON文件。

编辑:当然,用您的JSON文件位置和操作系统的语法替换$PWD/jsonFileLocation