【发布时间】: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