我正在尝试使用docker volume挂载我的代码目录,但无法这样做。
这是我的docker-compose文件的相关部分。
web:
build: ./web
dockerfile: Dockerfile
links:
- db:db
- elasticsearch:elasticsearch
volumes:
- ./web:/usr/src/app
web
文件夹具有DockerFile,其中包含以下说明。FROM python:2.7
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
docker-compose up工作正常,没有任何问题,但是启动后我看不到任何卷。
root@test-new:/home/django/test# docker inspect test_web | grep -i volume
"Volumes": null,
"Volumes": null,
如果相关的话,这就是我剩下的全部。
elasticsearch
nginx
postgres db
最佳答案
以下语法有效。
卷:
-$ {PWD} / web:/ usr / src / app
web:
build: ./web
dockerfile: Dockerfile-aside
links:
- db:db
- elasticsearch:elasticsearch
volumes:
- ${PWD}/web:/usr/src/app
env_file: .env
无法复制早期迁移的原因之一是因为我在新容器中而不是当前正在运行的容器中运行代码。
代替
docker-compose run --rm web /bin/bash
当我尝试
docker exec -it my_container_name web /bin/bash
然后运行migrate命令,新生成的数据库迁移命令将不在源目录上。使用docker-compose exec会是理想的选择,但是我正在使用的当前版本低于1.7,因此在此期间我正在使用上述临时解决方案。
https://github.com/d11wtq/dockerpty/pull/48
关于django - 使用自定义docker文件组成docker卷,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37400957/