Dev./Cloud

[Cloud] CD - NCP: Rollback tag

Ivan'show 2023. 8. 22.
728x90
반응형

현재에는 yml 파일에 latest 로 태그가 들어가기 때문에 롤백을 실행할 수 없다. 이미지에 고유 식별자가 없으면 어떤 변경이 언제 이루어졌는지 추적할 수 없고 오류진단과 디버깅을 쉽게 할 수 없다. 또한 새롭게 배포가 된 이후에 에러가 발생했을 때 안정적인 버전으로 빠르게 복귀가 필요한 경우도 종종 발생한다.

기본적으로 태그를 여러개 등록이 가능하기 때문에 유니크한 정보값을 생성을 위해 timestamp 를 사용하고 롤백을 위한 다중 태그를 등록하자.

# yml 파일
env:
    # IMAGE_TAG: ${{ vars.NCP_CONTAINER_REGISTRY }}/lion-app:latest
    IMAGE: ${{ vars.NCP_CONTAINER_REGISTRY }}/lion-app
    IMAGE_TAG: ${{ vars.NCP_CONTAINER_REGISTRY }}/lion-app:latest 

...

- name: Get current timestamp
  id: timestamp
  run: echo "timestamp=$(date '+%s')" >> "$GITHUB_OUTPUT"

- name: Build and Export
  uses: docker/build-push-action@v4
  with:
    context: lion_app # location where image will be built
    push: true # This indicates push event
    tags: ${{ env.IMAGE_TAG }},"${{ env.IMAGE }}:${{ steps.timestamp.outputs.timestamp }}"

git push 이후에 NCP 로 push 가 잘 이루어 졌는제 확인

728x90
반응형

댓글