Coding/Back - Spring Framework

gitAction 자동배포 #Day22

꿀딴지- 2023. 9. 14. 15:19

AWS EC2에 git변경 시 자동 배포 : github commit/push(trigger point) ⇒ (최종) AWS EC2에 컨테이너 배포

local git → (commint/push) github repo → (자동 : gitaction) docker hub img 생성 → (자동 : gitaction) aws 컨테이너 배포

 

Step 1(수동배포). gitAction을 사용해 github push 되면 docker hub에 이미지 생성

  1. github action 활성화
    • (IntelliJ) .github>workflows>main.yml
    • (github Settings) Secrets and variables > Actions : main.yml에서 사용한 secret 변수 설정
      • DOCKER_HUB_USERNAME DOCKER_HUB_PASSWORD
  2. Dckerfile : docker build 설정파일

결과 : git push하면 docker hub에 이미지 생성되는 것 확인

 

 

Step2(자동배포). github에 push되면 AWS 컨테이너 실행

  1. AWS 설정
    • EC2 실행(ubuntu), 8080포트 접속 허용
    • docker 설치
    sudo apt-get update
    
    sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable"
    
    sudo apt-get update
    #실제 docker설치
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    docker --version
    sudo chmod 666 /var/run/docker.sock
    
    #docker img 다운로드(pull)
    docker pull [img이름:버전]
    #tag를 latest로 생성하기 위해 
    docker tag [기존tag] [신규tag]
    
    docker run -d --name server -p 8080:8080 [img이름]
    docker ps //구동 확인 
    # -d : 백그라운드에서 동작, --name : 컨테이너 이름
  2. github action main.yml에 deploy 추가
    • aws ec2 배포주소 확인
  3. gitAction이 aws에 접속가능하도록 key set 설정
    • 키 생성
    ssh-keygen -t rsa -b 4096 -C "jyoungp02@gmail.com" -f lgu-cicd
    
    • 키 등록 : 개인키 - gitAction
    • 키 등록 : 공개키 - ec2 서버
    vi ~/.ssh/authorized_keys2
    

결과 : git push하면 docker hub에 이미지 생성되는 것 확인

docker ps -a

 

참고1. github acution 키 설정 부분