我是Django的新手。我想运行下面这个例子的代码 https://github.com/wsvincent/djangoforprofessionals/tree/master/ch1-hello .容器被创建了,但它没有运行,因为它被打断了,因为Docker不能启动应用程序,在运行manage.py的命令时显示以下错误。
Creating ch1-hello_web_1 ... done
Attaching to ch1-hello_web_1 web_1 | python: can't open
file '/code/manage.py': [Errno 2] No such file or directory
ch1-hello_web_1 exited with code 2
我使用的是Windows 7专业版,因此我的Docker工具箱与其他docker化的应用程序工作正常。我访问了docker镜像,确认文件在容器中。所以我想知道,当Docker试图访问该文件时,是否可能是Linux的权限问题。
我的Docker版本是19.03.1,构建74b1e89e8a
docker镜像中的/code文件夹。
-rwxr-xr-x 1 root root 361 Apr 23 02:11 Dockerfile
-rwxr-xr-x 1 root root 157 Apr 11 21:31 Pipfile
-rwxr-xr-x 1 root root 1624 Apr 11 21:31 Pipfile.lock
-rwxr-xr-x 1 root root 131072 Apr 11 21:31 db.sqlite3
-rwxr-xr-x 1 root root 103 Apr 23 02:11 docker-compose.yml
drwxr-xr-x 2 root root 4096 Apr 23 00:38 hello_project
-rwxr-xr-x 1 root root 633 Apr 11 21:31 manage.py
drwxr-xr-x 3 root root 4096 Apr 23 00:38 pages
[1]: https://i.stack.imgur.com/u3KEn.png在Docker中的图像的文件截图
我使用的Dockerfile,我改成了阿尔卑斯山的版本。注意,使用完整的python docker镜像,python:最新的,我得到了同样的错误。
# Pull base image
FROM python:3.9.0a5-alpine3.10
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
# Copy project
COPY . /code/
docker-compose.yml
version: '3.7'
services:
build: .
command: python /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
我也试着在一个有人报告同样错误的线程中做了建议的修改,以防涉及到数据库,但问题仍然存在。使用docker-compose对Django应用进行Docker化的问题
提前感谢!