inflearn logo
강의

講義

知識共有

デプロイから運用障害対応まで - GitOps、オブザーバビリティ、AIエージェント

実習:Argo CDによるデプロイ自動化

Apple Silicon에서 CI 빌드 이미지가 재시작을 반복할 때 (jib platforms 수정)

解決済みの質問

56

wlghsp3420

投稿した質問数 41

1

안녕하세요, 강의 잘 듣고 있습니다. 공유드릴 내용이 있어서 남깁니다.

Apple Silicon(M3)에서 kind로 실습하다가, CI(GitHub Actions)가 빌드한 이미지가 계속 Running 0/1에서 재시작되는 문제를 겪었습니다.

원인

sns-app 레포의 build.gradle.kts에 있는 jib { from { platforms { ... } } } 블록이 빌드 머신의 아키텍처를 따라가도록 되어 있었습니다.

```kotlin

architecture = if (System.getProperty("os.arch") == "aarch64") "arm64" else "amd64"

```

GitHub Actions 러너는 x86이라 amd64 이미지가 만들어졌고, 이게 arm64 노드(Apple Silicon의 kind)에서 에뮬레이션으로 돌면서 기동이 너무 느려 liveness 프로브에 계속 죽었습니다.

저는 이렇게 해결했습니다.

sns-app 레포 루트의 build.gradle.kts 파일에서 jib { from { platforms { ... } } } 부분을 아래처럼 수정했습니다. 기존에는 platform { ... } 하나에 if 분기가 들어 있었는데, 이를 지우고 두 플랫폼을 모두 지정했습니다.


jib {
from {
image = "eclipse-temurin:25-jre-alpine"
platforms {
platform {
architecture = "amd64"
os = "linux"
}
platform {
architecture = "arm64"
os = "linux"
}
}
}
// to, container 블록은 그대로
}


image.png


amd64와 arm64를 둘 다 지정해서 멀티 플랫폼 이미지로 빌드했더니 정상 동작했습니다. 같은 환경에서 따라 하시는 분들께 도움이 될 것 같아 남깁니다. 감사합니다.

spring-boot kubernetes ci/cd github-actions argocd gitops ai-agent

回答 1

1

apiece

안녕하세요. 아라레님!

원인 분석과 해결 방법을 자세히 공유해주셔서 감사합니다!

말씀해주신 내용을 확인하고, 제 맥북(M3 Max)에서도 GHCR의 amd64 이미지를 실습과 같은 앱 리소스 제한과 상태 검사 설정으로 다시 실행해봤습니다.
제 환경에서는 Docker Desktop의 amd64 이미지가 Rosetta 로 실행되어 애플리케이션 기동이 성공했고 (약 34초 소요), liveness 검사에서도 재시작 없이 정상 동작했습니다.

다만 Apple Silicon의 모든 환경에서 동일하게 동작하지는 않을 수 있고,
Docker Desktop의 가상화와 에뮬레이션 설정, 할당 자원 등에 따라 아라레님 처럼 기동 시간과 실행 결과가 달라질 수 있습니다.

말씀해주신대로 강의 자료에서 기존 설정이 CI 러너의 아키텍처에 맞는 이미지 하나만 생성하는 건 맞구요. 로컬 빌드 환경과 CI 이미지의 실행 환경이 달라지는 경우를 제가 충분히 고려하지 못했네요.

공유해주신 것처럼 amd64와 arm64를 모두 지정해 멀티 플랫폼 이미지로 이미지 저장소(ghcr)에 게시하면, 로컬 PC 에서 이 이미지를 불러올 때 맥북 실리콘(ARM64 노드)은 더이상 AMD64 가 아니라 ARM64 이미지를 선택하므로 해당 변환 과정 없이 실행할 수 있습니다. 그래서 제안해주신 수정 방향은 적절해보입니다!


이 부분은 조만간 강의를 업데이트하도록 하겠습니다

직접 해결하신 과정을 공유해주셔서 감사합니다 🙇‍♂️

1

apiece

강의 업데이트 완료했습니다 https://inf.run/NGRsi

감사합니다.


1

wlghsp3420

안녕하세요 한조각님, 빠르게 반영해 주셔서 감사합니다.

참고로 저는 회사 PC라 Docker Desktop을 사용할 수 없어서 colima로 실습하고 있습니다. colima는 Rosetta가 꺼져 있어서(rosetta: false) amd64 이미지가 QEMU로 실행됐고, 그래서 같은 Apple Silicon이어도 문제가 더 크게 나타났던 것 같습니다.

감사합니다.

1

apiece

아 그런상황이셨군요 그러면 작동이 더 어려웠겠네요

환경이 다른 상황에서 해법까지 찾아주시고 또 이렇게 공유도 해주셔서 감사드립니다

안녕하세요aks에대한 문의드립니다.

0

9

1

herdr로 오른쪽 pane 열려고 하는데 문제가 발생하네요

0

10

0

dev-pipeline 질문

0

17

0

강사님 질문이 있는데요.

0

18

1

https 도메인

0

19

0

로그인 확인

0

29

2

클로드 디자인 업데이트로 인한 강의 수정 요청

0

20

1

Unit 4.2 OPENROUTER_API_KEY가 설정되어 있지 않습니다.

0

22

0

디자인 시스템을 사용해 UI 만들기

0

20

1

Claude Pilot 프로그램이 뭐죠?

0

22

0

-a cline 옵션은 넣었는지 궁금합니다.

0

21

1

조금 전에 18강을 들었는데요..

0

32

2

Decker 설치 완료후 Decker engine 실행문의

0

27

2

지금 첫강의 듣고 있는데요, 필요한 최소사앙은 어떻게 되나요?

0

29

2

안녕하세요 선생님 질문있습니다.

0

22

0

Git Bash Winpty 설정

0

24

1

git 설치하기

0

29

1

서비스 기획 공부와 관련해서

0

23

1

수업자료의 깃허브 저장소가 없는데요..

0

35

1

진도율 확인 요청

0

36

1

개인 블로그에 정리하면서 ppt 자료 캡처 해서 넣어도 되나요?

1

32

2

상세 설정까지 이해하시는 비결이 궁금합니다

1

78

2

아무 수정도 안하고 주어진 소스로 그대로 했는데 패스워드 에러가 남

0

93

1

처음 실행 시 계속 패스워드가 틀리다고 나옴. 수정하고 해도 마찬가지임

1

110

2