django - docker-machine 容器中缺少本地文件

标签 django postgresql docker docker-compose docker-machine

所以我有一个简单的容器化 django 项目,还有另一个用于 sass css 编译的容器。

我将 docker-compose 与 docker-machine 一起使用,但是当我启动它时,web 容器中没有我的任何本地文件(manage.py 等),因此它以 文件结束未找到:manage.py 错误。

让我解释一下:

docker-compose.yml

web:
  build: .
  volumes:
    - .:/app
  ports:
    - "8001:5000"
sass:
  image: ubuntudesign/sass
  command: sass --debug-info --watch /app/static/css -E "UTF-8"
  volumes:
    - .:/app

Dockerfile

FROM ubuntu:14.04

# Install apt dependencies
RUN apt-get update && apt-get install -y python-dev python-pip git bzr libpq-dev pkg-config

FROM ubuntu:14.04

# Install apt dependencies
RUN apt-get update && apt-get install -y python-dev python-pip git bzr libpq-dev pkg-config

# Pip requirements files
COPY requirements /requirements

# Install pip requirements
RUN pip install -r /requirements/dev.txt

COPY . /app
WORKDIR /app

CMD ["python", "manage.py", "runserver", "0.0.0.0:5000"]

以及本地目录中的标准 django 项目:

$ ls 
docker-compose.yml Dockerfile manage.py README.md static templates webapp

这里是我尽可能隔离的错误:

$ docker-compose run web python

can't open file 'manage.py': [Errno 2] No such file or directory

正确的是:

$ docker-compose run web ls

static

我认为这是使用远程 docker-machine 时的问题,我已尝试遵循 simple django tutorial ,我认为本地文件共享的工作方式有所不同。

使用 docker-machine 时有什么不同?

最佳答案

Docker 卷将文件从主机 装载到容器中。

所以在这种情况下,您已经将 docker-machine 指向的任何主机的当前目录挂载到容器中。除非您正在进行一些时髦的 VM 交叉安装(如 boot2docker 所做的),否则这不会与您正在运行的机器上的目录相匹配。

关于django - docker-machine 容器中缺少本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566932/

相关文章:

将文件写入 EFS docker 卷时 Python 进程没有响应

docker - 无法从Macos连接容器Docker

python 粘贴不显示错误跟踪

javascript - Django ajax查看csrf失败并出现500错误

postgresql - 在 hstore 列上选择不起作用 (PostgreSQL)

python - 'P 0' < ' P! ' 在 python 和 postgresql 中

node.js - 我如何从本地主机服务?

python - 从 django bulk_create 选择/查询对象?

python - Django mysql 数据库凭据 read_default_file 给出错误

postgresql - pg_stat_user_indexes 是否被复制?