从容器到主机的容量份额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.
我的问题是当我的容器停机时保持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
您试图将命名卷语法与绑定挂载一起使用。我想你的语法切换到:
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
选项。不支持将图像中的文件复制到主机绑定,仅适用于命名卷。
确认!删除'volume:nocopy:true'选项后使用相同的文件时,该错误不存在。 – Ayushya