iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
DevOps

CI/CD系列 第 25

Day25:自動遞增 Image 版號

  • 分享至 

  • xImage
  •  

在CI/CD(持續集成/持續交付)流程中自動遞增圖像版本號通常是很有用的。這樣可以確保在每次部署時都使用不同的版本,以便更好地管理和追蹤應用程序的變更。以下是一個示例CI/CD流程,用於自動遞增圖像版本號,而且最主要的事也不會有版本衝突導致部分指令沒辦法用:

CI/CD配置: 在您的CI/CD工具(如Jenkins、Travis CI、CircleCI等)的配置文件中,添加以下步驟以自動遞增版本號:

  • a. 檢出代碼: 在每次構建開始時,首先檢出代碼庫中的代碼。

  • b. 讀取當前版本號: 讀取版本號文件中的當前版本號。

  • c. 遞增版本號: 使用類似於我在前面示例中提供的Python腳本來遞增版本號。

  • d. 將更新的版本號寫回文件: 將遞增後的版本號寫回版本號文件。

  • e. 建構和部署圖像: 使用CI/CD工具的建構和部署步驟,創建新的圖像並部署到適當的環境中。

  • f. 提交變更: 提交版本號文件的變更到代碼庫。這將確保下次構建時您使用的是更新的版本號。

build-image:
  tags:
    - py
  stage: build
  image : docker
  variables:
    DOCKER_HOST: tcp://docker:2375 
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""
    IMAGE_VERSION: "6.0"
  services:
    - name: docker:dind
      alias: docker
      command: ["--tls=false"]
  before_script:
    - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin "${CI_REGISTRY}"
  script:
    - echo "build start"
    - docker build .
      --tag ${CI_REGISTRY_IMAGE}:$IMAGE_VERSION
    - echo $CI_REGISTRY_USER ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} ${CI_REGISTRY_IMAGE}
    - echo "docker build finished"
    - echo "docker push started"
    - docker push ${CI_REGISTRY_IMAGE}:$IMAGE_VERSION   #自動遞增版號
    - echo "docker push finished"

這樣,每次您的CI/CD流程運行時,版本號都會自動遞增,並且您可以確保每次部署都使用不同的版本號。這將有助於更好地追蹤和管理您的應用程序的變更和版本。請根據您所使用的CI/CD工具的具體語法和步驟進行調整


上一篇
Day24:容器映像庫
下一篇
Day26:部屬伺服器
系列文
CI/CD30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言