Docker 错误:服务“应用程序”无法构建

VA *_*ash 3 docker docker-compose

我是 docker 的新手,目前正在阅读书籍来学习 Django。

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

  2. 我已经浏览了 docker 基本视频,其中显示它将每个应用程序保存为图像。但这些图像保存在哪里呢?

  3. 此行是否使当前电脑根目录或dockers Image ' WORKDIR /usr/src/app'

在 Dockerfile 中,ADD 位于 RUN 之前。

$ sudo docker-compose 构建

但我遇到了这些错误。

ERROR: Service 'app' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder912263941/config/requirements.txt: no such file or directory
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

要求.txt

Pillow~=5.2.0
mysqlclient~=1.3.0
Django~=2.1.0
Run Code Online (Sandbox Code Playgroud)

cod*_*ion 5

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

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

我已经浏览了 docker 基本视频,其中显示它将每个应用程序保存为图像。但这些图像保存在哪里呢?

图像存储在某处,/var/lib/docker但并不意味着可以手动浏览。您可以将图像发送到某处docker push <image:tag>或将其保存为docker save <image:tag> -o <image>.tar

此行是否使当前电脑根目录或dockers Image ' 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
Run Code Online (Sandbox Code Playgroud)

config/requirements.txt此错误意味着您当前目录中没有运行构建的目录。正确调整 Dockerfile 上的路径。