8. Публикация на Docker Hub - Hoper/cicd-buzz GitHub Wiki
Публикация в реестре Docker-образов, таком как Docker Hub, упрощает развертывание контейнеров в различных окружениях и их откат на предыдущие версии. Для выполнения этого шага вам потребуется учетная запись на https://docker.com, создать репозиторий на DockerHub с именем - cicd-buzz а также файл ‘deploy_dockerhub.sh’ в новой директории ‘.travis’ в корне проекта:
#!/bin/sh
docker login -u $DOCKER_USER -p $DOCKER_PASS
if [ "$TRAVIS_BRANCH" = "master" ]; then
TAG="latest"
else
TAG="$TRAVIS_BRANCH"
fi
docker build -f Dockerfile -t "$DOCKER_USER/cicd-buzz":"$TAG" .
docker push "$DOCKER_USER/cicd-buzz":"$TAG"
$DOCKER_USER - user name на DockerHub (внесем сами) $DOCKER_PASS - пароль на DockerHub (внесем сами) $TRAVIS_BRANCH - переменная Travis в которой храниться название ветки github
Travis CI будет выполнять этот скрипт в конце каждой сборки, создавая таким образом ее Docker-образ. Обратите внимание на 2 переменные окружения. Их можно определить на вкладке ‘settings’ репозитория 'cicd-buzz' в Travis CI:
Переменные окружения для Docker в Travis CI
Чтобы Travis CI публиковал образ на Docker Hub после каждого коммита в репозиторий GitHub, измените ‘.travis.yml’ следующим образом:
sudo: required
services:
- docker
language: python
script:
- python -m pytest -v
after_success:
- sh .travis/deploy_dockerhub.sh
После создания коммита и отправки этих изменений на GitHub (а также ожидания, пока Travis CI закончит свою работу) у вас появится возможность запустить контейнер с buzz-генератором прямо с Docker Hub:
[cicd-buzz] $ docker run -p5000:5000 --rm -it <YOUR_DOCKER_USERNAME>/cicd-buzz:latest