Почему некоторые докеры копируют файлы, а не монтируют их как том - PullRequest
0 голосов
/ 09 апреля 2019

Может кто-нибудь объяснить мне, почему в некоторых файлах Docker есть шаги для копирования файлов, а не просто монтирование тома с файлами.

Я искал настройки для проекта Django с Docker, и в файле docker есть шаги с командами копирования в:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

В других используемых мной файлах Docker (homeassistant) у меня есть толькосмонтировал каталог как том и все заработало.Что здесь происходит?

Разве я не могу просто сохранить код и требования в одной папке и смонтировать их?

Просто не могу разобраться с этим

Редактировать:

Для справки я смотрю учебник по Docker для Django , и он монтирует корневой каталог как / code

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

Почему этот том смонтированна /code, если мы все равно скопируем туда файлы.Может быть, это то, что меня отталкивает?

1 Ответ

1 голос
/ 09 апреля 2019

Тома используются для управления файлами, хранящимися в контейнере Docker.Это позволяет контейнеру Docker выполнять запись в указанное место в файловой системе.Если вам нужно только выполнить фрагмент кода, лучше просто скопировать его в контейнер Docker, чтобы у него не было доступа для записи в файловую систему хоста.

РедактироватьЯ на самом деле не знаю, почему они указывают громкость в настройке docker compose.build: . указывает, что он должен использовать Dockerfile в текущем каталоге, который уже содержит оператор копирования.Это кажется немного бессмысленным.Может быть ошибкой в ​​учебнике.

...