Разработка в образе Docker, находящемся под управлением версий
В настоящее время есть конвейер, который я использую для построения отчетов в R и публикации в Jekyll. Я держу свои файлы под контролем версий в github, и это отлично работает до сих пор.
Недавно я начал думать о том, как я мог бы взять R, Ruby и Jekyll и построить образ docker, который любой из моих коллег мог бы загрузить и запустить тот же отчет, не имея всех пакетов и драгоценных камней, настроенных на их компьютере. Я посмотрел на Docker Hub и обнаружил, что автоматические сборки для Git фиксируют были очень интересной особенностью.
Я хочу создать образ, который я мог бы использовать для запуска этой конфигурации и держать его под контролем версий, а также поддерживать его в актуальном состоянии в Docker Hub. Как работает нечто подобное?
Если бы я просто сохранил свою текущую настройку, я мог бы добавить dockerfile в свой РЕПО, и Docker Hub построил бы мой образ для меня, я просто думаю, что было бы интересно запустить мою работу над тем же образом.
Есть мысли о том, как может работать такой конвейер?
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-magicDockerfile выше должен быть в вашем репозитории отчетов.
Во 2-м репозитории вы можете создать базовый образ со всеми инструментами и nginx или что-то для обслуживания статических файлов. Убедитесь, что nginx www-root имеет значение /reports. Если вам нужно обновить инструменты, просто обновите тег base_mage в Dockerfile для отчетов.
Comments