我正在尝试使用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/

10-16 11:14
查看更多