Skip to content

도커 멀티플랫폼 빌드 설정 수정#199

Merged
zionhann merged 3 commits intoHandongSF:mainfrom
zionhann:chore/ci-qemu-multiplatform
Mar 5, 2026
Merged

도커 멀티플랫폼 빌드 설정 수정#199
zionhann merged 3 commits intoHandongSF:mainfrom
zionhann:chore/ci-qemu-multiplatform

Conversation

@zionhann
Copy link
Member

@zionhann zionhann commented Mar 5, 2026

  • 멀티 플랫폼 Docker 빌드 안정성을 위해 QEMU 설정 단계를 추가했습니다

    현재 워크플로는 amd64와 arm64 이미지를 동시에 빌드하도록 구성되어 있습니다. 다만 실행 러너 아키텍처와 타깃 아키텍처가 다를 때는 에뮬레이션 준비가 없으면 빌드가 불안정해질 수 있습니다. QEMU 설정 단계를 명시해 크로스 아키텍처 빌드 경로를 안정적으로 확보하도록 보완했습니다. 이번 변경은 기존 배포 흐름을 바꾸지 않고 멀티 플랫폼 빌드 신뢰성만 높이려는 목적입니다.

  • Buildx 초기화 순서를 조정해 에뮬레이션 인식 시점을 맞췄습니다

    멀티 아키텍처 빌드에서 builder 초기화 시점은 플랫폼 지원 인식에 영향을 줍니다. QEMU가 먼저 준비된 상태에서 Buildx를 초기화해야 emulation 지원이 일관되게 적용됩니다. 리뷰 지적에 맞춰 단계 순서를 재배치해 arm64 빌드가 러너 환경에 덜 의존하도록 정리했습니다. 결과적으로 동일 워크플로에서 빌드 성공률과 재현성을 높일 수 있습니다.

  • Compose 실행 구성을 배포 환경 기준으로 정리했습니다

    Compose 서비스 이름과 환경변수 구성을 서버 배포 시나리오에 맞게 정렬했습니다. 이미지 참조는 외부 주입값을 전제로 두고, 프로필과 설정 파일 마운트는 실행 환경에서 제어하도록 단순화했습니다. 이를 통해 런타임 구성 책임을 compose 파일과 배포 환경 변수로 분리해 운영 시 예측 가능성을 높였습니다. 결과적으로 Jenkins 배포 단계와 compose 실행 계약이 더 일관되게 맞물리도록 개선했습니다.

@gemini-code-assist
Copy link

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@coderabbitai
Copy link

coderabbitai bot commented Mar 5, 2026

📝 Walkthrough

Walkthrough

.github/workflows/gradle.yml 파일에 멀티-아키텍처 빌드를 지원하기 위해 QEMU 설정 스텝이 추가되었습니다. 이 스텝은 "Set up Buildx"와 "Log in to GHCR" 단계 사이에 위치하며 3줄이 추가되었습니다.

Changes

Cohort / File(s) Summary
GitHub Actions 워크플로우
.github/workflows/gradle.yml
docker/setup-qemu-action@v3를 사용하여 "Set up QEMU" 스텝 추가. 멀티-아키텍처 빌드를 위한 QEMU 설정이 빌드 및 푸시 단계 전에 수행됩니다.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed PR 제목은 멀티 플랫폼 Docker 빌드 안정화와 QEMU 설정 추가를 언급하며, 실제 변경 내용(gradle.yml에 QEMU 설정 단계 추가)과 일치합니다.
Description check ✅ Passed PR 설명은 QEMU 설정 추가의 목적, 멀티 아키텍처 빌드 안정성 향상, 그리고 단계 순서 조정에 대해 자세히 설명하며, 변경 내용과 충분히 관련이 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@zionhann zionhann changed the title CI 멀티 플랫폼 Docker 빌드에 QEMU 설정을 추가합니다 CI 멀티 플랫폼 Docker 빌드에 QEMU 설정 추가 Mar 5, 2026
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: af7e75f95c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +67 to +71
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Move QEMU setup before Buildx initialization

Registering QEMU after docker/setup-buildx-action can leave the Buildx builder initialized without emulation support, so the later platforms: linux/amd64,linux/arm64 build may fail (or not reliably support arm64) on runners that do not already have binfmt configured. In this workflow, the new QEMU step is currently ordered after Buildx setup, which undermines the intended stabilization of cross-architecture builds.

Useful? React with 👍 / 👎.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[bot] QEMU 설정 단계를 Buildx 초기화보다 먼저 오도록 순서를 변경했습니다. 멀티 플랫폼 빌드에서 builder가 emulation 지원을 인식하도록 커밋 1b9dcec에 반영했습니다.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/gradle.yml:
- Around line 67-72: Swap the two workflow steps so that the "Set up QEMU" step
(uses: docker/setup-qemu-action@v3) runs before the "Set up Docker Buildx" step
(uses: docker/setup-buildx-action@v3); edit the .github/workflows/gradle.yml job
steps to move the QEMU step above the Buildx step so the QEMU emulator is
registered prior to builder creation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 9f978fe9-9140-486e-adf9-fd658a7f3a92

📥 Commits

Reviewing files that changed from the base of the PR and between 4e10b29 and af7e75f.

📒 Files selected for processing (1)
  • .github/workflows/gradle.yml

Comment on lines +67 to +72
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

docker/setup-qemu-action docker/setup-buildx-action correct ordering GitHub Actions documentation

💡 Result:

In GitHub Actions workflows, docker/setup-qemu-action should run before docker/setup-buildx-action (when you need QEMU for multi-platform / non-native builds). The setup-qemu-action docs explicitly state it should come before setup-buildx-action, and the setup-buildx-action usage example shows the same ordering. [1], [2]

Typical ordering:

- name: Set up QEMU (optional, for more platforms)
  uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
  uses: docker/setup-buildx-action@v3

QEMU is optional—Docker’s GitHub Actions docs note you only need it if you want “support for more platforms” beyond what’s natively available on the runner. [3]

Sources:
[1] docker/setup-qemu-action (README) (github.com)
[2] docker/setup-buildx-action (README “Usage” example) (github.com)
[3] Docker Docs: GitHub Actions multi-platform builds (docs.docker.com)

Citations:


🌐 Web query:

docker/setup-buildx-action official documentation GitHub Actions setup order requirements

💡 Result:

Official docs / requirements for docker/setup-buildx-action ordering in GitHub Actions

  • If you need QEMU emulation (multi-arch builds on non-native runners): run docker/setup-qemu-action before docker/setup-buildx-action. [1]
  • Set up Buildx before you build: docker/setup-buildx-action should run before your build step (for example docker/build-push-action), because it creates/boots the builder used by later steps. [2][3]

Typical order (common pattern):

  1. actions/checkout
  2. (optional) docker/setup-qemu-action
  3. docker/setup-buildx-action
  4. (optional, if pushing) docker/login-action
  5. docker/build-push-action [1][2][3]

Set up QEMUSet up Docker Buildx보다 먼저 배치해 주세요.

공식 Docker 문서에 따르면, 멀티 플랫폼 빌드를 위해 QEMU 에뮬레이션이 필요한 경우 docker/setup-qemu-action반드시 docker/setup-buildx-action보다 먼저 실행되어야 합니다. 현재 순서(Buildx → QEMU)에서는 빌더 생성 시점에 에뮬레이터가 준비되지 않아 멀티 아키텍처 감지가 불안정할 수 있습니다.

🔧 제안 패치
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v3
+
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v3
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v3
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/gradle.yml around lines 67 - 72, Swap the two workflow
steps so that the "Set up QEMU" step (uses: docker/setup-qemu-action@v3) runs
before the "Set up Docker Buildx" step (uses: docker/setup-buildx-action@v3);
edit the .github/workflows/gradle.yml job steps to move the QEMU step above the
Buildx step so the QEMU emulator is registered prior to builder creation.

@zionhann zionhann changed the title CI 멀티 플랫폼 Docker 빌드에 QEMU 설정 추가 CI 멀티 플랫폼 Docker 빌드에 QEMU 설정을 추가합니다 Mar 5, 2026
@zionhann zionhann changed the title CI 멀티 플랫폼 Docker 빌드에 QEMU 설정을 추가합니다 CI 멀티 플랫폼 빌드 안정화와 Compose 배포 구성을 정리합니다 Mar 5, 2026
@zionhann zionhann changed the title CI 멀티 플랫폼 빌드 안정화와 Compose 배포 구성을 정리합니다 CI 멀티 플랫폼 빌드 안정화와 Compose 배포 구성 정리 Mar 5, 2026
@zionhann zionhann merged commit fe86d94 into HandongSF:main Mar 5, 2026
3 checks passed
@zionhann zionhann changed the title CI 멀티 플랫폼 빌드 안정화와 Compose 배포 구성 정리 도커 멀티플랫폼 빌드 설정 Mar 5, 2026
@zionhann zionhann changed the title 도커 멀티플랫폼 빌드 설정 도커 멀티플랫폼 빌드 설정 수정 Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant