본문 바로가기

내일배움 캠프/TIL

Git Actions 을 이용한 백엔드 배포 자동화

GitHub Actions는 빌드, 테스트 및 구현 파이프라인을 자동화할 수 있는 CI/CD(Continuous Integration and Continuous Delivery) 플랫폼입니다. 저장소에 대한 모든 꺼내기 요청을 빌드하고 테스트하는 워크플로우를 만들거나 병합된 꺼내기 요청을 프로덕션에 배포할 수 있습니다.

 

이 방식을 통해 Github repository를 통해 푸시한 Django project를 자동으로 ec2 instance안에 있는 docker compose container를 build를해서 자동업데이트를 진행을 하였는데 이거를 하기위해서 먼저 git hub secrets안에 배포하는데 필요한 환경변수라던지 ssh키같은거를 넣어줍니다

그 후 배포환경에 맞게

- name: Update code & Deploy
      uses: appleboy/ssh-action@v0.1.6
      with:
        host: ${{ secrets.REMOTE_IP }}
        username: ${{ secrets.REMOTE_USER }}
        key: "${{ secrets.sshkey }}"
        port: ${{ secrets.REMOTE_SSH_PORT }}

위와 같이 필요한 환경변수들을 등록해주고 이제 ubuntu환경에서 배포할때 사용하던 명령어들을 그대로 입력해주면

자동적으로 배포가되게됩니다.

script: |
  echo "${{secrets.MAKEBFFS}}" >> $HOME/makebffs.pem
  chmod 600 $HOME/makebffs.pem
  ssh -i $HOME/makebffs.pem -o StrictHostKeyChecking=no ${{ secrets.EC2_IP }}
  cd /home/ubuntu/backend/django/
  git pull origin main
  cd /home/ubuntu/
  sudo docker compose up --build -d
  sudo docker compose restart

해당방법을 통해 등록한pem 키를 600 으로 설정한 후에 ssh 설정으로 ec2 instance에 들어갑니다 그 후 django project가 있는 폴더로 간 후에 pull을 하고 docker container를 restart를 해주면됩니다