【发布时间】:2023-03-16 16:55:01
【问题描述】:
在我的 django docker 应用程序中,我会使用一个卷来管理我的应用程序文件,这里是我的 Dockerfile:
FROM python:3.6-alpine
EXPOSE 8000
RUN apk update
RUN apk add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev
RUN apk add postgresql-dev gcc python3-dev musl-dev
VOLUME /var/lib/cathstudio/data
WORKDIR /var/lib/cathstudio/data
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install -t /var/lib/cathstudio/data -r requirements.txt
ENV PYTHONUNBUFFERED 1
ENV PYTHONPATH /var/lib/cathstudio/data
COPY . /var/lib/cathstudio/data
ENTRYPOINT python /var/lib/cathstudio/data/manage.py runserver 0.0.0.0:8000
但是当我运行我的应用程序时:
docker run -d -it --rm --link postgres:postgres --name=cathstudio myrepo/app_studio:latest
我明白了
python: 无法打开文件 '/var/lib/cathstudio/data/manage.py': [Errno 2] 没有这样的文件或目录
如果我在我的 Dockerfile 中只写 ENTRYPOINT python manage.py runserver 0.0.0.0:8000 也是一样的
我的文件哪里错了?如何使用存储应用文件的卷来运行我的应用?
提前非常感谢
【问题讨论】:
-
您是否尝试在 dockerfile 中运行
ls命令来检查文件是否确实存在? -
为什么要多次从当前目录复制文件?
-
你已经设置了WORKDIR然后你需要运行
ENTRYPOINT python manage.py runserver 0.0.0.0:8000它应该工作如果文件存在。 -
我尝试但我得到:python:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录
标签: python django docker dockerfile