【发布时间】:2019-04-24 09:37:37
【问题描述】:
我是 Docker 新手,正在尝试使用相同的方式部署 django 项目。但是在构建 docker-compose 之后,我收到了这个错误:
错误:无法打开需求文件:[Errno 2] 没有这样的文件或 目录:'requirements.txt' 错误:服务 'web' 未能构建: 命令“/bin/sh -c pip install -r requirements.txt”返回一个 非零码:1
我可能在设置正确路径时搞砸了,所以这是我的项目结构
~/Desktop/Projects/ToDoApp
ToDoApp
settings.py
docker-compose.yml
Dockerfile
manage.py
requirements.txt
这是我的 dockerfile
#pull official base image
FROM python:3
#set envionment variables
ENV PYTHONUNBUFFERED 1
# Adding requirements file
ADD requirements.txt ToDoApp/ToDoApp
#set work directory
WORKDIR /ToDoApp
#install dependencies
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD ["python", "./ToDoApp/manage.py runserver 0.0.0.0:8000"]
这是我的 docker-compose.yml
version: '3'
services:
web:
build: .
command: python /ToDoApp/manage.py runserver 0.0.0.0:8000
volumes:
- .:/Desktop/Projects/ToDoApp
ports:
- "8000:8000"
environment:
- SECRET_KEY = please_change_me
【问题讨论】:
-
我认为是因为您将
requirements.txt放在子目录ToDoApp/ToDoApp/中,或者如果子目录不存在,您将其重命名为ToDoApp/ToDoApp。 -
请注意,您的
ADD命令使用相对目录,而WORKDIR使用绝对目录。除非您的 Docker 工作目录首先是/,否则我认为这是不正确的。 -
this 可能会有所帮助
-
我的 requirements.txt 在 ToDoApp 中,这就是我将它添加到我的 dockerfile 中的 ToDoApp/ToDoApp 的原因。你建议 thwefile 应该在哪里?
-
做
WORKDIR /ToDoApp/ToDoApp并尝试
标签: python docker dockerfile