Intereting Posts
Как запустить контейнер докеров на USB-накопителе? Docker-Machine командует тайм-аут TLS-рукопожатие, но Dock Swarmer работает нормально Получение ошибки подключения NettyTcpClient с помощью Spring WebSocket с брокером amqp (rabbitmq) во время работы в докере Как создать очередь в кроличнике из весенней загрузки с док-станком для кролика Данные Docker mysql, не отражающие цели Передача WebUI 409 в Docker Container имя_файла docker.local в / etc / hosts не разрешается на OSX для докерной машины (вызывая ошибки rspec) docker1.7 Ошибка ответа от демона: не удается запустить контейнер: недопустимый аргумент Где я должен хранить служебные файлы для кластера CoreOS и как их загрузить? Ошибка при запуске контейнера докеров Официальный домен Docker (Docker Hub) URL Построить изображение докеры ubuntu от Dockerfile Выполнение `ls` на докере с общим томом приводит к« Нет такого файла или каталога » Кластеризация сервисов докеров Можем ли мы использовать docker-образ с драйвером hyperkit на mac?

Локальное развитие с докером – мне нужно 2 докерных файла?

Попытавшись впервые выполнить django-проект, я понимаю, что для производства у моего Dockerfile должно быть ADD которое копирует проект django в контейнер.

Но для локального развития мне нужно каждое изменение кода, чтобы вступить в силу немедленно, потому что я читал, что рекомендуется монтировать том, когда я запускаю docker (docker run -v path: path), но означает ли это, что мне нужно иметь другой файл Docker для местного развития? который не запускает команду ADD ?

Нет, вам может не понадобиться два файла. Вы можете использовать ту же папку в команде ADD в томе.

См. Этот учебник django на официальной странице докеров:

https://docs.docker.com/compose/django/

Dockerfile

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

Составить файл

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

Вместо того, чтобы привязывать локальную папку к пути к контейнеру, вы можете создать том, который может существовать везде, где вы хотите (как объясняется в этом ответе с помощью локального драйвера-драйвера persist или даже с более продвинутым драйвером, таким как flocker )

Таким образом, ваши данные сохраняются в том объеме данных, к которому можно получить доступ:

  • либо локально (локальный плагин persist)
  • или по-прежнему локально, через выделенный контейнер ( svendowideit/samba/ ), устанавливающий этот том

Нет необходимости в двух докерных файлах, если вы монтируете «docker run -v hostpath: containerpath», он монтирует хост-путь, даже если контейнерный путь уже существует!