2017-02-03 4 views
0

У меня есть несколько контейнеров, и каждый из моих контейнеров имеет свой собственный файл Docker. Каждый раз, когда я строю, используя docker-compose build, каждый контейнер выполняет свои собственные требования; либо из файла требований .txt (RUN pip install -r requirements.txt), либо непосредственно из файла Docker (RUN pip install Django, celery, ...). Многие из требований распространены в некоторых контейнерах (почти все).Docker составляет требования к установке в общем каталоге

Он работает отлично, но есть проблема со временем сборки. Для создания каждого контейнера с нуля требуется почти 45 минут. (скажем, после того, как я удалил все изображения и контейнеры)

Есть ли способ установить все требования в общий каталог для всех контейнеров, чтобы мы не устанавливали общие требования каждый раз при создании нового контейнера?

Докер-Compose я использую вариант 2.

ответ

1

Вы можете определить свой собственный базовый образ. Допустим, все ваши контейнеры нужно Джанго и Boto, например, вы можете создать свой собственный Dockerfile:

FROM python:3 

RUN pip install django boto 

# more docker commands 

Тогда вы можете создать этот образ как arrt_dtu/envbase и опубликовать его где-нибудь (dockerhub, внутреннюю Docker среду вашей компании). Теперь вы можете создавать свои специализированные изображения с помощью этого один:

FROM arrt_dtu/envbase 

RUN pip install ... 

Это точно такого же принципа, мы имеем с рубиновыми изображениями, например. В рубине используется linux. Если вы хотите изображение с рельсами, вы также можете использовать рубиновый. Изображения докеров полностью доступны для повторного использования!