我一直在关注本教程
https://youtu.be/610jg8bK0I8?t=3m
运行docker-compose up
(时间= 3:00)时,我得到了
web_1 | python:无法打开文件“ src / profiles_project / manage.py”:[错误2]没有此类文件或目录
byob-profiles-rest-api-docker_web_1退出,代码为2
即使我的manage.py位于
D:... \ byob-profiles-rest-api-docker \ src \ profiles_project
检查一下:
然后pwd
返回:
/ d /.../ byob-profiles-rest-api-docker
我敢打赌,代码需要权限才能打开manage.py。
如果是这样,我如何允许它这样做?
这是完整的追溯:
$ docker-compose up
Building web步骤1/7:来自python:3 3:拉 来自库/ python 8f0fdd3eaac0:拉取完成
d918eaefd9de:拉动完成
43bf3e3107f5:提取完成
27622921edb2:拉动完成
dcfa0aa1ae2c:提取完成
61cf1e8f9385:拉完整
6cb6c5f51ace:拉出完成
6c164355f57f:拉出完成
11f88e8d4be6:拉动完成
消化: sha256:e5a6b05bf9f991ac2a07007a60a132a98a67db67ff84b0687fceb875815ed566 状态:为python下载的新映像:3 ---> 1f88553e8143步骤 2/7:ENV PYTHONUNBUFFERED 1 --->在de506e7625bb中运行卸下 中间容器de506e7625bb ---> 34e1e4bfc80b步骤3/7:运行 mkdir / code->在b855df518561中运行 容器b855df518561 ---> f3d222639153步骤4/7:WORKDIR / code --->在e437636da59a中运行卸下中间容器e437636da59a ---> 1bb45a02ac18步骤5/7:ADD requirements.txt / code / ---> 1a0c34f20c6d步骤6/7:运行pip install -r requirements.txt --->在0b572730b40c中运行收集appdirs == 1.4.3下载 https://files.pythonhosted.org/packages/56/eb/810e700ed1349edde4cbdc1b2a21e28cdf115f9faf263f6bbf8447c1abf3/appdirs-1.4.3-py2.py3-none-any.whl 收集Django == 1.11下载 https://files.pythonhosted.org/packages/47/a6/078ebcbd49b19e22fd560a2348cfc5cec9e5dcfe3c4fad8e64c9865135bb/Django-1.11-py2.py3-none-any.whl (6.9MB)收集djangorestframework == 3.6.2下载 https://files.pythonhosted.org/packages/d2/79/e68b85647c539a155c6f6a0738208eb5ed09c61adabfd6f2e6edde944529/djangorestframework-3.6.2-py2.py3-none-any.whl (1.3MB)收集包装== 16.8下载 https://files.pythonhosted.org/packages/87/1b/c39b7c65b5612812b83d6cab7ef2885eac9f6beb0b7b8a7071a186aea3b1/packaging-16.8-py2.py3-none-any.whl 收集pyparsing == 2.2.0下载 https://files.pythonhosted.org/packages/6a/8a/718fd7d3458f9fab8e67186b00abdd345b639976bc7fb3ae722e1b026a50/pyparsing-2.2.0-py2.py3-none-any.whl (56kB)正在收集pytz == 2017.2下载 https://files.pythonhosted.org/packages/55/62/e7cd0e15b76062d298413f14bb4ec3cd8568a22d274427f9c3c7286969f4/pytz-2017.2-py2.py3-none-any.whl (484kB)收集六个== 1.10.0下载 https://files.pythonhosted.org/packages/c8/0a/b6723e1bc4c516cb687841499455a8505b44607ab535be01091c0f24f079/six-1.10.0-py2.py3-none-any.whl 安装收集的软件包:appdirs,pytz,Django, djangorestframework,pyparsing,六个,包装已成功安装 Django-1.11 appdirs-1.4.3 djangorestframework-3.6.2包装16.8 pyparsing-2.2.0 pytz-2017.2六-1.10.0警告:您正在使用pip 版本19.3.1;但是,版本20.0.1可用。你应该 考虑通过“ pip install --upgrade pip”命令进行升级。 卸下中间容器0b572730b40c ---> aa2cd7274887步骤 7/7:添加。 / code / ---> 013bd684f31a成功构建013bd684f31a 已成功标记byob-profiles-rest-api-docker_web:latest警告: 构建了用于服务Web的图像,因为该图像尚不存在。至 重建此图像,您必须使用docker-compose build
或docker-compose up --build
。创造 byob-profiles-rest-api-docker_web_1 ...完成
附加到byob-profiles-rest-api-docker_web_1 web_1 |蟒蛇: 无法打开文件“ src / profiles_project / manage.py”:[错误2] 由代码退出的文件或目录byob-profiles-rest-api-docker_web_1 2
这是我的Dockerfile:
FROM python:3
# USER app ENV PYTHONUNBUFFERED 1
# RUN mkdir /db
#RUN chown app:app -R /db
RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/
这是我的YAML docker-compose.yml
文件:
version: '3'
services:
web:
build: .
command: python src/profiles_project/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
在这里您可以看到Dockerfile和yml文件在哪里:
可以在this Github repository上找到重现该问题所需的所有文件。
编辑(1):
在将this answer读到线程后,我将文件夹从移出了
** D:... \ byob-profiles-rest-api-docker **
到
** C:... \ byob-profiles-rest-api-docker **
现在又出现另一个错误:
$ docker-compose up
由obob-profiles-rest-api-docker_web_1开始...完成
附加到byob-profiles-rest-api-docker_web_1 web_1 |例外 在以下线程开始的线程中忽略:.wrapper 在0x7fd37a681c10> web_1 |追溯(最近一次通话):web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/utils/autoreload.py”, 包装器web_1中的第227行| fn(* args,** kwargs)web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/core/management/commands/runserver.py”, 第117行,位于inner_run web_1中| autoreload.raise_last_exception() web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/utils/autoreload.py”, 第250行,位于raise_last_exception web_1中|
six.reraise(* _ exception)web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/utils/six.py”,行 685,正在提高web_1 |提高价值。with_traceback(tb)web_1 |
文件 “ /usr/local/lib/python3.8/site-packages/django/utils/autoreload.py”, 包装器web_1中的第227行| fn(* args,** kwargs)web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/init.py”,第27行, 在设置web_1中| apps.populate(settings.INSTALLED_APPS)web_1 | 文件“ /usr/local/lib/python3.8/site-packages/django/apps/registry.py”, 第85行,位于web_1 | app_config = AppConfig.create(条目) web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/apps/config.py”,行 94,在创建web_1 | module = import_module(entry)web_1 |
在第127行的文件“ /usr/local/lib/python3.8/importlib/init.py” import_module web_1 | return _bootstrap._gcd_import(name [level:], 套餐,级别)web_1 |文件“”,行 1014,在_gcd_import web_1中|文件“”, _find_and_load web_1中的第991行_find_and_load_unlocked web_1中的文件“”,第975行 _load_unlocked中的文件“”,第671行 web_1 |文件“”,第783行,在 exec_module web_1 |文件“”,第219行, 在_call_with_frames_removed web_1中|文件 “ /usr/local/lib/python3.8/site-packages/django/contrib/admin/init.py”, web_1中的第4行|来自django.contrib.admin.filters 导入(web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/contrib/admin/filters.py”, web_1中的第10行|来自django.contrib.admin.options 导入IncorrectLookupParameters web_1 |文件 “ /usr/local/lib/python3.8/site-packages/django/contrib/admin/options.py”, web_1中的第12行|从django.contrib.admin导入 帮手,小部件