【问题标题】:Docker does not create local project directory as expectedDocker 没有按预期创建本地项目目录
【发布时间】:2019-12-18 20:53:14
【问题描述】:

我正在关注 docker/django 教程:https://docs.docker.com/compose/django/

我建立了一个项目目录 C:\docker_test 并按照指南中的描述配置了 docker-compose.yml、Dockerfile 和 requirements.txt。

这是 docker-compose.yml 的内容:

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

以及 Dockerfile 的内容:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip --proxy=http://mycorpproxy:80 install -r requirements.txt
COPY . /code/

当我运行docker-compose run web django-admin startproject composeexample . 时,它按预期执行,但我没有看到创建的 composeexample 目录。如果我尝试重新运行命令,我会收到此错误:

CommandError: /code/manage.py already exists, overlaying a project or app into an existing directory won't replace conflicting files

我的本​​地机器上没有 /code/ 目录...它在哪里?

谢谢!

编辑:这感觉不像是一个答案,但这就是我如何让它再次工作。我卸载了docker并重新安装。我们的 Sec 部门非常严格地控制主机 FW 规则,因此我不得不让帮助台人员调整主机上的一些防火墙规则,然后我们就让它工作了。上次安装 docker 时我也必须这样做,但这次似乎有些事情发生了。在这种情况下,如果有办法不使用网络共享来访问驱动器,那就太好了。

【问题讨论】:

  • 向我们展示您的 docker-compose.yml。您很可能没有正确指定卷。
  • @jozo 感谢您的提问。我只是将 docker-compose.yml 的内容添加到原始帖子中。如果你看到任何东西,请告诉我。我怀疑 Dockerfile 有问题,所以我也会添加它。
  • /code/ 目录在您的 docker 容器中。您可以运行 docker-compose run web pwddocker-compose run web ls -l 来查看您在 docker 容器中的目录。
  • 感谢@d0niek 的信息!我可以看到代码,并且 composeexample 目录是在容器内创建的。在我的旧 PC 上,我的项目文件夹中也创建了 composeexample 文件夹,教程似乎表明情况就是如此。所以对我来说问题仍然存在,如果代码文件夹是在 docker 映像中创建的,为什么它不在本地文件夹中?
  • 您已将本地项目目录. 挂载到容器目录/code。那是一个符号链接。它不是你的本地目录,它你的本地目录。

标签: django docker docker-compose


【解决方案1】:

我认为这篇文章已经被重复了几次,我在这里为任何最终来到这里的人回答了这个问题: https://stackoverflow.com/a/64396894/292633

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2013-10-11
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 2020-10-10
    相关资源
    最近更新 更多