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