Поскольку Docker Hub не предоставляет никакого API, единственный способ удаленная отправка материалов в Docker Hub осуществляется с помощью команды docker push
, и это ограничивает использование для отправки изображений.
С другой стороны, если вы позволите службе Docker Hub создать образ для вас из репозитория Github или Bitbucket, то Docker Hub обновит подробное описание, взяв содержимое файла README.md
, найденного в этом репозитории. См. раздел Понимание процесса сборки в Docker. Документация Hub по автоматической сборке.
Это означает, что вы размещаете файлы Dockerfile и README.md на Github или Bitbucket.
Если вам действительно нужно сначала создать свой образ на TravisCI (возможно, потому, что вы также запускаете автоматические тесты на построенном образе), вы можете настроить TravisCI на запуск веб-перехватчика на Docker Hub, чтобы сообщить Docker Hub о сборке образа после того, как TravisCI определит, что он прошел проверку. тесты.
Для этого в Docker Hub настройте свой образ так же, как для автоматической сборки (следовательно, свяжите проект Github или Bitbucket), но отключите автоматическую функцию:
Затем прокрутите страницу Настройки сборки вниз до раздела Триггер сборки и скопируйте URL-адрес триггера:
Теперь отредактируйте файл .travis.yml и добавьте следующий блок (обратите внимание на заполнители <your account>
и <your image>
):
after_success:
# notify Docker Hub to make a new build
- >
[ "$TRAVIS_BRANCH" == "master" ]
&& curl -X POST -H "Content-Type: application/json"
--data '{"docker_tag_name": "latest"}'
https://registry.hub.docker.com/u/<your account>/<your image>/trigger/$DOCKER_HUB_TOKEN/
Затем перейдите на страницу своего проекта на сайте Travis CI и откройте настройки проекта:
И добавьте переменную среды DOCKER_HUB_TOKEN
в свой проект Travis CI со значением токена триггера, найденным на странице настроек сборки Docker Hub:
Вам по-прежнему понадобится репозиторий Github или Bitbucket, связанный с вашим проектом Docker Hub, но Travis CI будет тем, кто проинструктирует Docker Hub, когда собирать ваш образ.
person
Thomasleveil
schedule
10.01.2016