Разработка в образе Docker, находящемся под управлением версий



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



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



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



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



Есть мысли о том, как может работать такой конвейер?

709   1  

1 ответ:

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

У вас должно быть два 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 для отчетов.

Comments

    Ничего не найдено.