Skip to content

Commit 731bf76

Browse files
committed
🚀 Azure Container Registry에 이미지 push하는 GitHub Action 추가
1 parent 1053ed3 commit 731bf76

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Build and Push Backend Image to ACR
2+
3+
# 워크플로우 트리거 설정
4+
on:
5+
push:
6+
branches: [ dev-test ] # TODO(Godeok Kim): dev 브랜치에 push될 때만 실행하는 것으로 했으나 이후 테스트와 메인을 분리하는 작업이 필요
7+
workflow_dispatch: {} # GitHub Actions 탭에서 수동으로 실행 가능
8+
9+
jobs:
10+
build-and-push:
11+
runs-on: ubuntu-latest # 실행 환경 지정
12+
steps:
13+
# 1. 소스 코드 체크아웃
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
17+
# 2. Azure 로그인 (Service Principal 사용)
18+
- name: Log in to Azure
19+
uses: azure/login@v1
20+
with:
21+
creds: ${{ secrets.AZURE_CREDENTIALS }}
22+
23+
# 3. ACR 로그인 (Azure 자격 증명 사용)
24+
- name: Log in to ACR
25+
uses: azure/docker-login@v1
26+
with:
27+
login-server: ${{ secrets.ACR_LOGIN_SERVER }}
28+
username: ${{ secrets.ACR_USERNAME }}
29+
password: ${{ secrets.ACR_PASSWORD }}
30+
31+
# 4. Docker 이미지 메타데이터 추출 (태그 생성 등)
32+
- name: Extract metadata (tags, labels) for Docker
33+
id: meta # 이 step의 출력을 참조하기 위한 ID
34+
uses: docker/metadata-action@v5
35+
with:
36+
images: ${{ secrets.ACR_LOGIN_SERVER }}/${{ secrets.ACR_REPOSITORY_NAME_TEST }}
37+
# 예시 태그: main 브랜치면 latest, 그 외에는 브랜치명, 그리고 항상 Git SHA 태그 추가
38+
tags: |
39+
type=ref,event=branch
40+
type=ref,event=pr
41+
type=sha
42+
type=raw,value=latest,enable={{is_default_branch}}
43+
44+
# 5. Docker 이미지 빌드 및 ACR에 푸시
45+
- name: Build and push Docker image
46+
uses: docker/build-push-action@v5
47+
with:
48+
context: . # Dockerfile이 있는 경로
49+
file: ./Dockerfile # Dockerfile 경로 명시 (기본값)
50+
push: true # 빌드 후 푸시 실행
51+
tags: ${{ steps.meta.outputs.tags }} # 위 metadata step에서 생성된 태그 사용
52+
labels: ${{ steps.meta.outputs.labels }} # 위 metadata step에서 생성된 라벨 사용

0 commit comments

Comments
 (0)