2024.12.30
개발환경
[MacOS]
Github Actions
Docker
Spring Boot
AWS ECR
AWS ECR
- AWS에서 관리하는 image registry 서비스
- DockerHub와 비슷한 서비스
- AWS에서 제공하는 서비스를 활용하는 경우 액세스가 비교적 안전하고 간편
ECR 생성
Github Actions Push yml
name: Build and Push Docker Image To AWS ECR
on:
push:
branches:
- main
jobs:
build-push-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: maven
- name: Make application-prod.properties
run: |
mkdir -p ./src/main/resources
cd ./src/main/resources
touch ./application.properties
echo "${{ secrets.PROPERTIES }}" > ./application.properties
shell: bash
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Naming jar file
run: mv ./target/*.jar ./target/app.jar
- name: Check jar file
run: ls ./target
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Login to Amazon ECR (Private)
run: |
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${{ secrets.ECR_PRIVATE_ID }}.dkr.ecr.ap-northeast-2.amazonaws.com
- name: Build Docker image
run: |
docker build -t ${{ secrets.ECR_PRIVATE_ID }}.dkr.ecr.ap-northeast-2.amazonaws.com/${{ secrets.ECR_PRIVATE_REPOSITORY }}:latest .
- name: Push Docker image to Amazon ECR
run: |
docker push ${{ secrets.ECR_PRIVATE_ID }}.dkr.ecr.ap-northeast-2.amazonaws.com/${{ secrets.ECR_PRIVATE_REPOSITORY }}:latest
Secrets 변수 등록
Secrtes 변수 | 값 |
PROPERTIES | application.properties |
AWS_ACCESS_KEY_ID | AWS Access key ID |
AWS_SECRET_ACCESS_KEY | AWS Secret access Key |
ECR_PRIVATE_ID | URI 앞 숫자 값 |
ECR_PRIVATE_REPOSITORY | URI 뒤 레포지토리 이름 |
반응형
'AWS' 카테고리의 다른 글
[AWS EKS] AWS의 Kubenetes 클러스터 인프라 EKS 구축 방법 [3] (0) | 2025.01.17 |
---|---|
[AWS] AWS EKS Ingress를 사용한 포트포워딩 (2) | 2025.01.17 |
[AWS] AWS CLI로 IAM 권한 주기 (1) | 2025.01.17 |
[AWS] AWS의 Kubernetes 클러스터 인프라 EKS 구축 방법 [1] (0) | 2025.01.16 |
[AWS] ECR, ECS, Github Actions Push (7) | 2025.01.02 |