2016-09-23 7 views
2

В настоящее время существует конвейер, который я использую для создания отчетов в R и публикую в Jekyll. Я держу свои файлы под контролем версий в github, и до сих пор он работал отлично.Разработка изображений Docker, находящихся под контролем версий

В последнее время я начал думать о том, как я мог бы принять R, Ruby и Jekyll и построить Docker образ, что любой из моих коллег мог загрузить и запустить тот же отчет, не все пакеты и драгоценных камней, установленных на компьютере. Я посмотрел на Docker Hub и обнаружил, что автоматические сборки для git-коммитов были очень интересной особенностью.

Я хочу создать образ, который мог бы использовать для запуска этой конфигурации, и держать его под контролем версий, а также поддерживать его в актуальном состоянии в Docker Hub. Как это работает?

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

Любые мысли о том, как такой трубопровод может работать?

+1

Вы не создадите одно изображение, чтобы содержать все ваши компоненты, кроме одного изображения на репо (приложение R, сайт Jekyll, приложение Ruby). Вы просто добавляете файл Docker в каждом репозитории github. Вы объединяете их все вместе, используя файл docker-compose.yml на стороне клиента. Докер для Mac или Windows отлично подходит для вашего использования. – Alkaline

ответ

1

Служба строительства док-станции Docker должна работать (https://docs.docker.com/docker-hub/builds/). Вы также можете использовать gitlab-ci или travis ci (gitlab будет полезен для приватных проектов, он также предоставляет приватный реестр докеров).

У вас должно быть два файла Dockerfiles со всеми зависимостями и второй очень минималистический для отчетов (сборки будут намного быстрее). Что-то вроде:

FROM base_image:0.1 
COPY . /reports 
WORKDIR /reports 
RUN replace-with-requiered-jekyll-magic 

Dockerfile, указанный выше, должен быть в вашем репозитории отчетов.

Во 2-м репозитории вы можете создавать базовое изображение со всеми инструментами и nginx или что-то для обслуживания статических файлов. Убедитесь, что nginx www-root установлен в/reports. Если вам нужно обновить инструменты, просто обновите тег base_mage в Dockerfile для отчетов.

Смежные вопросы