我在docker容器中启动django项目时遇到问题。我的Dockerfile如下所示:
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000
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
创建一个我打电话的项目:
docker-compose run web python django-admin.py startproject web .
与以下消息崩溃:
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
也是这个
docker-compose run web django-admin.py startproject web .
与
崩溃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"
在我看来,执行这样的容器时$PATH
出错了。当我使用交互模式-it
时,我可以从此文件夹中调用django-admin
。 PATH
设置不正确还是我在这里做错了什么? Dockerfile
位于web
目录中。
修改:在评论中提出建议后,我尝试使用完整路径运行django-admin
:
root@935ca5543589:/code# which django-admin
/usr/local/bin/django-admin
仍然没有变化:
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"
答案 0 :(得分:0)
答案其实很简单。我先运行项目时Dockerfile
出错了。更改Dockerfile
后,docker-compose
没有自动重建我假设的图像。即使用docker build
进行重建也无法解决这个问题。只有在删除整个图像后,才会强制进行重建并给出正确的结果。
答案 1 :(得分:0)
我跑了什么:
docker-compose run app djando-admin.py startproject app
输出:
sh:djando-admin.py:未找到
解决方案:
sudo docker-compose run app django-admin startproject app .
尝试使用sudo
。