현제의 현재이야기
[docker] GitHub actions CI CD 본문
1. main.yml 파일 생성
Repository의 Actions 탭에서 set up a workflow yourself 버튼을 눌러 yml 파일을 작성
main.yml
name: spring server ci cd
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 저장소 Checkout
uses: actions/checkout@v3
- name: 자바 11 설정
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: 빌드
run: ./gradlew build
- name: 도커 이미지 빌드
run: docker build -t ${{ secrets.DOCKER_IMG }} .
- name: Docker Hub 로그인
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker Hub push
run: docker push ${{ secrets.DOCKER_IMG }}
- name: 배포하기
uses: appleboy/ssh-action@v0.1.6
with:
host: ${{ secrets.WAS_HOST }}
username: ec2-user
key: ${{ secrets.KEY }}
script: |
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker pull ${{ secrets.DOCKER_IMG }}
docker run -d -p 8080:8080 ${{ secrets.DOCKER_IMG }}
2. 해당하는 secrets들 등록
- 트러블 슈팅: ssh.ParsePrivateKey: ssh: no key found -> .pem 파일을 그냥 전체 복붙 https://github.com/appleboy/ssh-action/issues/6
- DOCKER 비밀번호를 넣기 보다는 access 토큰을 허브에서 발급 받아서 사용
- WAS_HOST는 그냥 ec2.~~ 하는 주소
3. settings -> actions -> runners 새로운 러너 생성
- ssh 열어주고 하나씩 설치
- 마지막 configure에서 nohup ./run.sh &로 백그라운드 실행
4. 이제 main 브랜치에 push 해본다
-편안- 이제 플젝 시작할 때, 미리 CI CD 구축해두고 개발하면 더욱 쉬울 것 같다. 도커 최고
| 해야할 것들
- 서브 모듈로 rds 연결 (키 숨기기 용 private 생성)
[Git] 깃 서브모듈(Submodule)
Submodule Git Submodule은 하나의 저장소(부모)에 다른 저장소(자식)를 두고 관리하기 위한 도구로, 하나의 프로젝트에서 다른 프로젝트를 함께 사용해야 하는 경우에 많이 사용한다. 나는 프로젝트는
yoo-dev.tistory.com
2. 도커 이미지 삭제가 안되고 있는 듯? 확인해야겠다
| 래퍼런스
GitHub Action을 이용한 CI/CD
전체적인 구성 로컬 PC에서 개발을 한 후 Github에 Push를 합니다. Github Repository 특정 branch에 push가 되면 Github Action이 동작을 시작합니다. Github Actions가 Github Container Registry에 소스를 받은 후 Docker 이
lusida-coding.tistory.com
'Infra' 카테고리의 다른 글
[DevOps] Docker compose 환경변수 (1) | 2023.05.22 |
---|---|
[DevOps] nginx를 이용한 무중단 배포 (1) | 2023.05.19 |
[docker] GitHub submodule (0) | 2023.05.16 |
[docker] 도커 ec2 배포 및 rds 연동 (0) | 2023.05.12 |
[docker] 도커 맛보기 (0) | 2023.05.12 |
Comments