GitHub Actions, AWS Elastic Container Registry(ECR)를 이용한 배포 자동화 (youtube.com)
위 영상을 참고하여 아래 github workflow CI기본 지식을 바탕으로
CI공부 : Github workflow(깃헙 워크플로우) (tistory.com)
workflows 폴더에 depoly.yml 파일로 하기 배포라인을 작성하였다.
name: Create and publish a Docker image to AWS ECR, Deploy to Cloudtype
on:
push:
branches:
- master
env:
REGISTRY: ${{ secrets.AWS_ECR_REGISTRY }}
IMAGE_NAME: test
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.AWS_ACCESS_KEY_ID }}
password: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Deploy to Cloudtype
uses: cloudtype-github-actions/deploy@v1
with:
token: ${{ secrets.CLOUDTYPE_TOKEN }}
project: iamipro/pharm
stage: main
yaml: |
name: pharmacy-app
app: container
options:
ports: 8080
image: ${{ steps.meta.outputs.tags }}
영상에도 나와 있지만
위의 보안을 위한 secrets 키는
깃헙의 Settings탭에 가서
Secrets and variables - Actions에 가서
설정을 해둘수 있다.
위 영상을 따라 확인해보니 배포작업이 모두 잘 작동되었다.
AWS의 ECR에 가보면 private repository에
test 리포지토리를 만들었는데
아래와 같이 이미지가 잘 들어감을 알 수 있다.
LIST
'4차산업혁명의 일꾼 > Java&Spring웹개발과 서버 컴퓨터' 카테고리의 다른 글
항해플러스3기 아고라 참여 후 무신사 하헌우 코치님 티칭 정리 (0) | 2023.12.14 |
---|---|
스프링 데이터 JPA 기초 정리 (0) | 2023.12.13 |
CI공부 : Github workflow(깃헙 워크플로우) (0) | 2023.12.11 |
방송통신대 컴퓨터과학과 올해를 넘기면서 (0) | 2023.12.08 |
클라우드 컴퓨팅의 미래 (0) | 2023.10.27 |