Как создать версию образов докера с номером сборки в CI (Jenkins) для развертывания в качестве Kubernetes Deployment? - PullRequest
0 голосов
/ 05 ноября 2019

В настоящее время я пытаюсь добавить номер версии или номер сборки для образа докера для развертывания в кластере kubernetes. Ранее я работал только с тегом :latest. Но когда я использую тег latest, я обнаружил проблему при извлечении из реестра образов Dockerhub. Поэтому, когда я использую номер сборки для своего образа докера, например <image-name>:{build-number}.

Структура приложения

В моем развертывании в kubernetes я использую развертывание и обслуживание. Я определяю свой репозиторий образов в файле развертывания следующим образом:

   containers:
   - name: test-kube-deployment-container
     image: samplekubernetes020/testimage:latest
     ports:
        - name: http
          containerPort: 8085
          protocol: TCP

Здесь вместо последнего тега я хочу поместить номер сборки вместе с моим образом в развертывание YAML.

  1. Могу ли я использовать переменную среды для хранения случайного номера сборки для доступа, например, <image-name>:${buildnumber}?
  2. Если я хочу использовать переменную среды, которая предоставляет случайное число, как я могу генерировать случайное число для переменной среды?

Обновления при реализации версии изображения

Мой измененный файл jenkinsfile содержит шаг, подобный следующему, чтобы назначить изображение версии для изображения. Но все равно я не получаю обновленный результат после изменений в репозитории,

Я создал шаг, подобный следующему, в Jenkinsfile

stage ('imagebuild')
  {
     steps
         {
 sh 'docker build -f /var/lib/jenkins/workspace/jpipeline/pipeline/Dockerfile -t spacestudymilletech010/spacestudykubernetes /var/lib/jenkins/workspace/jpipeline/pipeline'
 sh 'docker login --username=my-username --password=my-password' 
 sh "docker tag spacestudymilletech010/spacestudykubernetes:latest spacestudymilletech010/spacestudykubernetes:${VERSION}"
 sh 'docker push spacestudymilletech010/spacestudykubernetes:latest'

         }
  }

И мой файл развертывания YAML содержит, как показано ниже,

 containers:
   - name: test-kube-deployment-container
     image: spacestudymilletech010/spacestudykubernetes:latest
     ports:
        - name: http
          containerPort: 8085
          protocol: TCP

Путаница

Примечание: Когда я проверяю репозиторий dockerhub, каждый раз, когда он показывает последний статус push

Таквот мои путаницы:

  1. Есть ли проблема с извлечением последнего изображения из моего файла deploy.yaml или
  2. Проблема, когда я помечаю изображение на моем компьютере, откуда я нахожусьсоздание изображения и нажатие?

Может кто-нибудь помочь разрешить путаницу здесь, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...