Merge pull request #84 from eureca-final-capstone-project/develop #43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy to EC2 via Docker | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 소스코드 체크아웃 | |
| uses: actions/checkout@v4 | |
| - name: JDK 17 설치 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Gradle 빌드 | |
| run: ./gradlew clean build | |
| - name: JAR 이름 통일 (app.jar로) | |
| run: | | |
| mkdir -p ./docker-output | |
| cp ./build/libs/*SNAPSHOT.jar ./docker-output/app.jar | |
| - name: Docker 이미지 빌드 | |
| run: docker build -t admin-app:latest . | |
| - name: Docker 이미지 저장 (.tar) | |
| run: | | |
| docker save admin-app:latest -o ./docker-output/admin-app.tar | |
| chmod 644 ./docker-output/admin-app.tar | |
| - name: EC2로 Docker 이미지 전송 | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USERNAME }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| source: ./docker-output/admin-app.tar | |
| target: /home/ubuntu/deploy/ | |
| - name: EC2에서 컨테이너 실행 | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USERNAME }} | |
| key: ${{ secrets.EC2_PRIVATE_KEY }} | |
| script: | | |
| cd /home/ubuntu/deploy/docker-output | |
| docker load < admin-app.tar | |
| docker stop admin-app || true | |
| docker rm admin-app || true | |
| docker run -d --name admin-app -p 8080:8080 admin-app:latest |