Docker错误:服务';app&x27;未能构建
我是docker的新手,目前正在学习DjangoDocker错误:服务';app&x27;未能构建,docker,docker-compose,Docker,Docker Compose,我是docker的新手,目前正在学习Django 运行以下命令时是否需要处于虚拟环境中 指挥部 我看过docker basic视频,视频中说它会将每个应用程序保存为图像。但是这些图像保存在哪里呢 这一行是否构成当前pc根目录或dockers映像 WORKDIR/usr/src/app' 添加在Dockerfile中运行之前放置 $sudo docker组合构建 但是我犯了这些错误 ERROR: Service 'app' failed to build: ADD failed: stat /va
ERROR: Service 'app' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder912263941/config/requirements.txt: no such file or directory
Dockerfile
FROM python:3
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
mysql-client default-libmysqlclient-dev
WORKDIR /usr/src/app
ADD config/requirements.txt ./
RUN pip3 install --upgrade pip; \
pip3 install -r requirements.txt
RUN django-admin startproject myproject .;\
mv ./myproject ./origproject
docker compose.yml
version: '2'
services:
db:
image: 'mysql:5.7'
app:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- './project:/usr/src/app/myproject'
- './media:/usr/src/app/media'
- './static:/usr/src/app/static'
- './templates:/usr/src/app/templates'
- './apps/external:/usr/src/app/external'
- './apps/myapp1:/usr/src/app/myapp1'
- './apps/myapp2:/usr/src/app/myapp2'
ports:
- '8000:8000'
links:
- db
requirements.txt
Pillow~=5.2.0
mysqlclient~=1.3.0
Django~=2.1.0
运行以下命令时是否需要处于虚拟环境中
指挥部
否,docker生成环境与主机隔离。主机上的任何virtualenv在构建上下文和生成的映像上都将被忽略
我看过docker basic视频,视频中说它保存了每个应用程序
作为图像。但是这些图像保存在哪里呢
这些图像存储在/var/lib/docker
中的某个位置,但不能手动浏览。您可以使用docker push
将图像发送到某处,或使用docker save-o.tar
该行是否构成当前pc根目录或dockers映像“WORKDIR>/usr/src/app”
该行更改图像上的当前workdir
ERROR: Service 'app' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder912263941/config/requirements.txt: no such file or directory
此错误表示运行生成的当前目录中没有config/requirements.txt
。正确调整Dockerfile上的路径
$ docker-compose up -d
这将下载必要的Docker映像,并为web服务创建一个容器。可能是
config/requirements.txt
文件位于一个文件夹下,如myproject
或myapp1
。config
文件夹需要与您的Dockerfile
和docker compose.yml
文件夹位于同一个位置,谢谢,但在手册中指定将requirements.txt放在config子目录中。配置目录仅存在于myproject/myproject/config中。还有myproject/myproject/tmp,其中放置了settings.py、url.py和wsgi.py。这些目录不是由Django创建的。何时使用这些目录?这是某种标准吗?@VAsplash我不是要移动requirements.txt文件,而是使用dockerfile上的正确路径。也许你是指myproject/config/requirements.txt?您的问题中不清楚requirements.txt文件相对于docker-compose.yml的位置默认设置.py文件位置已更改。它移动到在default settings.py位置创建的新tmp目录。但是在创建配置目录的tmp目录的同一级别。因为requirements.txt以前是按照书中的规定放在config中的。为什么作者使用这些目录。这是标准吗?