В настоящее время я пытаюсь добавить номер версии или номер сборки для образа докера для развертывания в кластере 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.
- Могу ли я использовать переменную среды для хранения случайного номера сборки для доступа, например,
<image-name>:${buildnumber}
? - Если я хочу использовать переменную среды, которая предоставляет случайное число, как я могу генерировать случайное число для переменной среды?
Обновления при реализации версии изображения
Мой измененный файл 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
Таквот мои путаницы:
- Есть ли проблема с извлечением последнего изображения из моего файла deploy.yaml или
- Проблема, когда я помечаю изображение на моем компьютере, откуда я нахожусьсоздание изображения и нажатие?
Может кто-нибудь помочь разрешить путаницу здесь, пожалуйста?