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를 해주면됩니다
'내일배움 캠프 > TIL' 카테고리의 다른 글
git actions로 testcode 돌려서 에러 확인하기 (0) | 2023.07.24 |
---|---|
Git Actions 을 이용한 프론트엔드 배포 자동화 (0) | 2023.07.24 |
다양한 UI 요소 600여종을 심플한 HTML과 CSS로 구현한 사이트 (2) | 2023.07.20 |
Django, Celery, rabbitmq를 docker compose로 deploy하기 (0) | 2023.07.20 |
django-channels middleware custom (0) | 2023.07.20 |