Fre*_*ddy 5 python django docker docker-compose
我在 docker 容器内启动 django 项目时遇到问题。我的 Dockerfile 如下所示:
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000
Run Code Online (Sandbox Code Playgroud)
该requirements.txt由单行的Django该安装Django成功。
我的docker-compose.yml有以下内容:
version: '2'
services:
web:
build: ./web
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
volumes:
- ./web:/code
Run Code Online (Sandbox Code Playgroud)
要创建一个我正在调用的项目:
docker-compose run web python django-admin.py startproject web .
Run Code Online (Sandbox Code Playgroud)
崩溃并显示以下消息:
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
还有这个
docker-compose run web django-admin.py startproject web .
Run Code Online (Sandbox Code Playgroud)
与
ERROR: Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"django-admin.py\": executable file not found in $PATH"
Run Code Online (Sandbox Code Playgroud)
在我看来,$PATH像这样执行容器时出现错误。当我使用交互模式时-it,我可以django-admin从这个文件夹调用。是设置PATH不正确还是我在这里做错了什么?该Dockerfile是目录web。
编辑:在评论中提出建议后,我尝试django-admin使用完整路径运行:
root@935ca5543589:/code# which django-admin
/usr/local/bin/django-admin
Run Code Online (Sandbox Code Playgroud)
仍然没有变化:
docker-compose run web /usr/local/bin/django-admin startproject web .
ERROR: Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/usr/local/bin/django-admin\": stat /usr/local/bin/django-admin: no such file or directory"
Run Code Online (Sandbox Code Playgroud)
答案其实很简单。Dockerfile当我第一次运行该项目时,我遇到了一个错误。更改后Dockerfile,docker-compose并没有像我假设的那样自动重建图像。即使重建也docker build没有解决这个问题。仅在删除整个图像后,才强制重建并给出了正确的结果。
| 归档时间: |
|
| 查看次数: |
3277 次 |
| 最近记录: |