【问题标题】:Django project in docker container unable to run manage.py runserverdocker容器中的Django项目无法运行manage.py runserver
【发布时间】:2019-12-14 15:31:13
【问题描述】:

我是 docker 新手,有点难以理解容器/图像/服务概念。我无法使用 django 图像启动容器。这是我的 Docker 文件:

FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /django-ex
COPY /django-ex /django-ex
WORKDIR /django-ex
RUN pip install -r requirements.txt

'Build' 工作正常,没有错误。但是“向上”失败并出现错误:

web_1  | python: can't open file '/django-ex/manage.py': [Errno 2] No such file or directory
maria-ra-staff_web_1 exited with code 2

这是我的 docker-compose.yml:

version: '3.6'

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

我不明白为什么“up”没有我的项目文件。我在这个过程中错过了什么吗?

编辑:构建输出:

db uses an image, skipping
Building web
Step 1/6 : FROM python:3.6
 ---> 5bf410ee7bb2
 Step 2/6 : ENV PYTHONUNBUFFERED 1
  ---> Running in 2815482f2d9d
 Removing intermediate container 2815482f2d9d
  ---> a56843c06131
 Step 3/6 : RUN mkdir /django-ex
  ---> Running in 8c6a4a63c266
 Removing intermediate container 8c6a4a63c266
  ---> 8ffbdb670dbb
 Step 4/6 : COPY /django-ex /django-ex
  ---> c314f8e07aae
 Step 5/6 : WORKDIR /django-ex
  ---> Running in 15f0109d52cd
 Removing intermediate container 15f0109d52cd
  ---> 06b4e86e58f8
 Step 6/6 : RUN pip install -r requirements.txt
  ---> Running in eaa9782e1e9b
 {pip install output}
 Successfully installed django-1.11.26 django-debug-toolbar-1.8 gunicorn-19.4.5 psycopg2-2.7.3.1 pytz-2019.3 sqlparse-0.3.0 whitenoise-3.3.1
 Removing intermediate container eaa9782e1e9b
  ---> f22db286d5e3

【问题讨论】:

  • 构建输出是什么?
  • 最好的第一步是到docker-compose run web bash 并环顾四周看看实际有什么。您的 volumes: 语句隐藏了内置在您的图像中的代码,如果看起来文件丢失,这是一个潜在的麻烦来源。
  • 你为什么要像.:/django-ex那样使用挂载?这将隐藏容器内/django_ex 目录的所有内容以及您在撰写文件目录中拥有的任何内容。例如,删除.:/django-ex 并改为设置.:/django-ex-2 然后查看。
  • 向问题添加了构建输出。
  • 试过 'docker-compose run web bash',结果:正在启动 maria-ra-staff_db_1 ... 完成 root@a833ed9684d1:/django-ex# ls 所有文件都在 /django-ex 文件夹中

标签: python django python-3.x docker


【解决方案1】:

我仍然不知道如何,但是将卷中的文件夹名称更改为“/django-ex-2”会有所帮助。现在构建和构建工作正常(我在 Dockerfile 中添加了“迁移”)。谢谢。

附:我不会接受这个答案。也许有人会解释为什么它有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2017-05-05
    • 1970-01-01
    • 2022-07-01
    • 2019-01-31
    • 2022-07-21
    • 2018-06-01
    相关资源
    最近更新 更多