docker-使用自定义 docker 文件组成卷

docker-compose volumes with a custom docker file

我正在尝试使用 docker 卷挂载我的代码目录,但无法这样做。 这是我的 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

然后运行迁移命令,新生成的数据库迁移命令不存在于源目录中。最好使用docker-compose exec,但是我目前使用的版本低于1.7,所以我同时使用上面的临时解决方案。

https://github.com/d11wtq/dockerpty/pull/48