PHP 업그레이드 절차
- Dockerfile 수정
docker/php/Dockerfile의 base image를 원하는 PHP 버전으로 변경한다.
# 예: PHP 8.2 -> 8.4
FROM php:8.4-fpm
- 이미지 빌드
# PHP 이미지를 배포용 registry/tag 이름으로 빌드
docker build -t registry.yeonghoon.kim/ioniere/3009-yeonghoon.kim/rhymix-php:8.4-001 docker/php
- Registry 로그인
KubernetesimagePullSecret은 pull용이라 Docker push에는 자동 적용되지 않는다. 필요하면docker login registry.yeonghoon.kim을 먼저 한다.
# GitLab registry에 로그인
docker login registry.yeonghoon.kim
- 이미지 push
# 빌드한 PHP 이미지를 registry에 push
docker push registry.yeonghoon.kim/ioniere/3009-yeonghoon.kim/rhymix-php:8.4-001
- Helm values 수정
helm/rhymix/values.yaml의 PHP image tag를 push한 태그와 정확히 맞춘다.
web:
php:
image:
repository: registry.yeonghoon.kim/ioniere/3009-yeonghoon.kim/rhymix-php
tag: 8.4-001
- Helm 렌더링 확인
# chart가 실제로 새 PHP 이미지 태그를 렌더링하는지 확인
helm template rhymix ./helm/rhymix -n 3009-yeonghoon-kim | grep -n 'rhymix-php'
기대값:
image: "registry.yeonghoon.kim/ioniere/3009-yeonghoon.kim/rhymix-php:8.4-001"
- Git 커밋 및 push
ArgoCD 배포이므로helm upgrade가 아니라 Git 변경을 push한다.
# 변경사항 확인
git status
git diff -- docker/php/Dockerfile helm/rhymix/values.yaml
# 관련 파일만 스테이징
git add docker/php/Dockerfile helm/rhymix/values.yaml
# 커밋
git commit -m "Upgrade Rhymix PHP image to 8.4"
# ArgoCD가 보는 remote branch로 push
git push
- ArgoCD 반영 확인
# ArgoCD Application 확인
kubectl get applications -n argocd | grep -Ei '3009|yeonghoon|rhymix'
# 실제 Deployment가 새 이미지로 바뀌었는지 확인
kubectl get deploy rhymix-web -n 3009-yeonghoon-kim -o jsonpath='{.spec.template.spec.containers[*].image}{"\n"}'
# rollout 상태 확인
kubectl rollout status deploy/rhymix-web -n 3009-yeonghoon-kim
이번 작업의 핵심 포인트
- 새 이미지:
registry.yeonghoon.kim/ioniere/3009-yeonghoon.kim/rhymix-php:8.4-001 - push 성공 digest:
sha256:676f7e1b43037cf1724d5851b0820f5f480bccee6157812e3f90cabce7872a98 - Git 커밋:
9ede2e3 Upgrade Rhymix PHP image to 8.4 - ArgoCD 환경에서는 직접
helm upgrade하지 않고, Git push 후 ArgoCD sync로 배포한다.