Skip to content

Comments

[feature] 오라클 클라우드 CI/CD 구축#518

Merged
lepitaaar merged 11 commits intodevelop/befrom
feature/#517-oracle-cicd
Jun 12, 2025
Merged

[feature] 오라클 클라우드 CI/CD 구축#518
lepitaaar merged 11 commits intodevelop/befrom
feature/#517-oracle-cicd

Conversation

@lepitaaar
Copy link
Contributor

@lepitaaar lepitaaar commented Jun 12, 2025

#️⃣연관된 이슈

#517

📝작업 내용

개발서버 이전
기존에 사용하던 개발서버 action 삭제

중점적으로 리뷰받고 싶은 부분(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

논의하고 싶은 부분(선택)

논의하고 싶은 부분이 있다면 작성해주세요.

🫡 참고사항

Summary by CodeRabbit

  • Chores
    • Oracle 환경에 맞춘 배포 워크플로우로 변경되었습니다.
    • ARM64 아키텍처 지원을 위한 Docker 이미지 빌드 및 배포 방식이 개선되었습니다.
    • Oracle 서버에 맞는 SSH 배포 방식 및 환경 변수 설정이 적용되었습니다.
    • Docker 베이스 이미지를 ARM 지원을 위해 eclipse-temurin:17-jdk로 변경하였습니다.

@lepitaaar lepitaaar self-assigned this Jun 12, 2025
@lepitaaar lepitaaar added 💾 BE Backend 📦 CI/CD CI/CD 관련 설정 및 유지보수 labels Jun 12, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 12, 2025

Walkthrough

Oracle 환경에 맞춘 GitHub Actions 배포 워크플로우로 변경되었으며, ARM64 플랫폼 지원을 위해 Docker 빌드 및 배포 방식이 수정되었습니다. 워크플로우 트리거 브랜치와 SSH 배포 방식, 그리고 관련 시크릿 환경 변수들이 Oracle 환경에 맞게 업데이트되었습니다. Dockerfile의 베이스 이미지가 ARM 지원을 위해 변경되었습니다.

Changes

파일/경로 변경 요약
.github/workflows/oracle_server_cd_develop.yml 워크플로우 명칭 및 브랜치 트리거 수정, Buildx 기반 ARM64 Docker 빌드 및 푸시, SSH 배포 방식 appleboy/ssh-action으로 변경, Oracle 환경 변수 적용 및 이미지 정리 명령 추가
backend/Dockerfile 베이스 이미지를 openjdk:17-alpine에서 eclipse-temurin:17-jdk로 변경, ARM 지원 목적 주석 수정

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant GitHub Actions
    participant Oracle VM

    Developer->>GitHub Actions: Push to develop/be or feature/#517-oracle-cicd
    GitHub Actions->>GitHub Actions: Set up Docker Buildx
    GitHub Actions->>GitHub Actions: Build & Push ARM64 Docker Image
    GitHub Actions->>Oracle VM: SSH 접속 (appleboy/ssh-action)
    GitHub Actions->>Oracle VM: 원격 스크립트 실행 (컨테이너 업데이트 및 이미지 정리)
Loading

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions
Copy link

Test Results

76 tests   76 ✅  2s ⏱️
12 suites   0 💤
12 files     0 ❌

Results for commit 74f0e4d.

Copy link
Collaborator

@SeongHoonC SeongHoonC left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@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

🧹 Nitpick comments (4)
backend/Dockerfile (1)

1-2: 비루트(non-root) 사용자로 컨테이너 실행 보안 강화
컨테이너 보안을 위해 애플리케이션 전용 비루트 사용자를 생성하고 전환하는 단계를 추가하는 것을 고려해보세요.

- FROM eclipse-temurin:17-jdk
+ FROM eclipse-temurin:17-jdk@sha256:<digest>
+
+ # 비루트 사용자 생성
+ RUN addgroup -S appuser && adduser -S appuser -G appuser
+ USER appuser
.github/workflows/oracle_server_cd_develop.yml (3)

9-9: 브랜치 네이밍 특수문자 주의
feature/#517-oracle-cicd에 포함된 # 문자는 GitHub Actions 브랜치 필터링에서 예기치 않은 동작을 유발할 수 있습니다. 가능하면 feature/517-oracle-cicd와 같이 특수문자를 제거한 네이밍을 권장합니다.


81-95: 멀티 아키텍처 빌드 확장 검토
현재 ARM64 전용 이미지를 빌드하도록 설정되어 있는데,
추후 x86(AMD64) 환경 지원이 필요할 경우 platforms: linux/arm64,linux/amd64 등으로 멀티 아키텍처 빌드를 활성화하는 것을 고려해보세요.

-   platforms: linux/arm64
+   platforms: linux/arm64,linux/amd64

129-129: 불필요한 trailing spaces 제거
YAMLLint 오류를 방지하기 위해 스크립트 내 후행 공백을 제거해주세요.

-            gcloud auth configure-docker asia-northeast3-docker.pkg.dev 
+            gcloud auth configure-docker asia-northeast3-docker.pkg.dev

Also applies to: 140-141

🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 129-129: trailing spaces

(trailing-spaces)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 429c4c7 and 74f0e4d.

📒 Files selected for processing (2)
  • .github/workflows/oracle_server_cd_develop.yml (3 hunks)
  • backend/Dockerfile (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/oracle_server_cd_develop.yml

[error] 129-129: trailing spaces

(trailing-spaces)


[error] 140-140: trailing spaces

(trailing-spaces)


[error] 141-141: trailing spaces

(trailing-spaces)

🔇 Additional comments (1)
.github/workflows/oracle_server_cd_develop.yml (1)

118-140:

Details

❓ Verification inconclusive

원격 배포 시 gcloud CLI 및 키 파일 존재 여부 확인 필요
스크립트 내 gcloud auth 명령 사용이 전제되어 있으나, Oracle VM에 gcloud CLI 설치 및
${{ secrets.ORACLE_INSTANCE_USER }}/gce_sa_key.json 서비스 계정 키 파일이 준비되어 있지 않으면 배포가 실패합니다.
다음 사항을 검토하세요:

  • 원격 머신에 gcloud CLI 설치 여부
  • 서비스 계정 키 파일 전송 단계 추가 (scp-action 등 활용)
  • 또는 docker login을 활용한 GCR 인증 방식 대체

원격 배포 환경에서 gcloud CLI 및 서비스 계정 키 준비 확인 필요
SSH로 Oracle VM에 접속해 gcloud auth 명령을 실행하고 있으나, 해당 VM에 gcloud CLI가 설치되어 있지 않거나
/home/${{ secrets.ORACLE_INSTANCE_USER }}/gce_sa_key.json 키 파일이 없으면 배포가 실패할 수 있습니다.
아래 사항을 검토해주세요:

  • 원격 머신에 gcloud CLI 설치 여부 확인
  • 서비스 계정 키 파일을 VM에 전송하는 단계 추가 (예: scp-action 활용)
  • 또는 docker login을 활용한 GCR 인증 방식으로 대체
🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 129-129: trailing spaces

(trailing-spaces)


[error] 140-140: trailing spaces

(trailing-spaces)

Comment on lines +1 to +2
#ARM 빌드를위해 ARM 지원되는 jdk 사용
FROM eclipse-temurin:17-jdk
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

주석 가독성 수정 및 이미지 버전 고정 권장
ARM 지원을 위해 eclipse-temurin:17-jdk로 변경된 것은 적절하지만,

  1. 주석을 # ARM 빌드를 위해 ARM 지원되는 JDK 사용처럼 띄어쓰기 및 대문자 표기를 개선하세요.
  2. 재현 가능한 빌드를 위해 eclipse-temurin:17-jdk@sha256:<digest> 또는 특정 태그(e.g., eclipse-temurin:17.0.8_7-jdk)를 명시하여 버전을 고정하는 것을 권장합니다.
🤖 Prompt for AI Agents
In backend/Dockerfile at lines 1 to 2, improve the comment readability by adding
spaces and capitalizing properly as "# ARM 빌드를 위해 ARM 지원되는 JDK 사용". Also, fix
the base image version by specifying a full version tag or a digest (e.g.,
"eclipse-temurin:17.0.8_7-jdk" or "eclipse-temurin:17-jdk@sha256:<digest>") to
ensure reproducible builds.

@lepitaaar lepitaaar merged commit 79c53f1 into develop/be Jun 12, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💾 BE Backend 📦 CI/CD CI/CD 관련 설정 및 유지보수

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants