docker-compose将文件复制为文件夹

时间:2017-07-06 09:14:52

标签: elasticsearch docker docker-compose

我正在尝试将使用从主机启用的CORS的elasticsearch.yml复制到使用docker-compose卷选项的容器。 但是当我复制config文件夹时,它会将elasticsearch.yml文件作为文件夹复制到其中。

这是我的docker-compose文件:

version: "3"

services:  
elasticsearch1:  
    container_name: my_container_name
    image: elasticsearch
    environment:
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
    volumes:
      - /config/:/usr/share/elasticsearch/config/
    ports:
      - '9200:9200'
      - '9300:9300'

这是我在运行docker-compose时得到的错误消息:

  
    

线程中的异常" main" SettingsException [无法从/usr/share/elasticsearch/config/elasticsearch.yml加载设置];嵌套:IOException [是目录];

  

我也尝试过复制到tmp文件夹,文件被列为文件夹:

  
    

drwxr-xr-x 2 root root 40 Jul 6 08:25 elasticsearch.yml

  

我做错了什么?

1 个答案:

答案 0 :(得分:3)

使用适用于Windows的Docker和适用于Mac的Docker,您可以在VM内部运行docker,并将该VM中的目录安装到容器中。当文件或目录不存在于VM内部时,它将作为默认行为被Docker挂载为空文件夹(此行为似乎随着swarm模式而改变)。

要将Windows主机中的文件夹导入VM,然后将其映射到容器,您需要进入docker设置并配置共享驱动器:

https://docs.docker.com/docker-for-windows/#shared-drives