从容器到主机的容量份额docker-compose

问题描述:

我试图在容器和主机之间共享数据。所以我只想做这个来存储容器文件。数据必须从容器共享到主机。从容器到主机的容量份额docker-compose

我的搬运工,compose.yml

version: "3.3" 
services: 
    django: 
    image: python:slim 
    volumes: 
     - type: volume 
     source: ./env 
     target: /usr/local/lib/python3.6/site-packages 
     volume: 
      nocopy: true 
     - ./src:/usr/src/app 
    ports: 
     - '80:80' 
    working_dir: /usr/src/app 
    command: bash -c "pip install -r requirements.txt && python manage.py runserver" 

当我运行泊坞窗抛出这个:

ERROR: for django Cannot create container for service django: invalid bind mount spec "/Users/gustavoopb/git/adv/env:/usr/local/lib/python3.6/site-packages:nocopy": invalid volume specification: '/Users/gustavoopb/git/adv/env:/usr/local/lib/python3.6/site-packages:nocopy': invalid mount config for type "bind": field VolumeOptions must not be specified ERROR: Encountered errors while bringing up the project.

https://docs.docker.com/compose/compose-file/#long-syntax-3

我的问题是当我的容器停机时保持python env。为此,我需要将容器内的env共享给主机。我尝试了docker文档建议,但它不起作用。

volume: 
    nocopy: true 

我的解决方案: 我创建了一个指定容器。

version: "2" 

services: 
    django: 
    image: python:2.7 
    command: bash -c "pip install -r requirements.txt && python manage.py collectstatic --no-input && python manage.py migrate && python manage.py runserver 0.0.0.0:80" 
    env_file: 
     - .env 
    volumes: 
     - .:/app 
     - env:/Library/Python/2.7/site-packages 
    links: 
     - database 
    ports: 
     - "8000:80" 
    working_dir: /app 

volumes: 
    env: 

在文档中指定的卷未在服务中使用,而,它在外部被指定用于服务。尝试从卷中删除最后一行:

volume: 
    nocopy: true 
+0

确认!删除'volume:nocopy:true'选项后使用相同的文件时,该错误不存在。 – Ayushya

您试图将命名卷语法与绑定挂载一起使用。我想你的语法切换到:

version: "3.3" 
services: 
    django: 
    image: python:slim 
    volumes: 
     - type: bind 
     source: ./env 
     target: /usr/local/lib/python3.6/site-packages 
     - ./src:/usr/src/app 
    ports: 
     - '80:80' 
    working_dir: /usr/src/app 
    command: bash -c "pip install -r requirements.txt && python manage.py runserver" 

注意在type变化和缺乏nocopy选项。不支持将图像中的文件复制到主机绑定,仅适用于命名卷。