Docker错误:服务“ app”构建失败

时间:2019-02-14 17:41:48

标签: docker docker-compose

我是Docker的新手,目前正在学习Django。

  1. 运行以下命令时是否必须处于虚拟环境中 命令?

  2. 我看过docker基本视频,上面说它将每个应用程序都保存为图像。但是这些图像保存在哪里?。

  3. 此行是否将当前计算机设为根目录或dockers Image' WORKDIR / usr / src / app'

ADD在Dockerfile中放置在RUN之前。

$ sudo docker-compose build

但是我遇到了这些错误。

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

2 个答案:

答案 0 :(得分:1)

  

运行以下命令时是否必须处于虚拟环境中   命令?

否,docker构建环境与主机隔离。主机上的任何virtualenv都会在构建上下文和生成的映像中被忽略。

  

我看过docker基本视频,上面说它可以保存每个应用程序   作为图像。但是这些图像保存在哪里?。

图像存储在/var/lib/docker中的某个位置,但并不意味着需要手动浏览。您可以使用docker push <image:tag>将图片发送到某个地方,也可以使用docker save <image:tag> -o <image>.tar将图片保存

  

此行是否将当前PC设为根目录或dockers镜像'WORKDIR> / usr / src / app'

该行更改了图像上的当前工作目录。

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上的路径。

答案 1 :(得分:-1)

$ docker-compose up -d

这将下载必要的 Docker 镜像并为 Web 服务创建一个容器。