Skip to content

Update Dockerfile

Update Dockerfile #4

Workflow file for this run

name: Deploy
on:
push:
branches: [ "mova_deploy" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
# 1) 코드 체크아웃
- name: Checkout
uses: actions/checkout@v3
# 2) JDK 17
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
# 3) gradlew 실행 권한 부여 (Permission denied 방지)
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# 4) 빌드 (테스트 제외)
- name: Build (skip tests)
run: ./gradlew clean build -x test
# 5) Docker Hub 로그인
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# 6) 이미지 빌드 & 푸시 (latest로 통일)
- name: Build & Push (latest)
run: |
docker build -t sungminju/mova:latest .
docker push sungminju/mova:latest
# 7) EC2 배포: .env 생성 → pull → compose 재기동 → 청소
- name: Deploy on EC2 (create .env, pull & restart)
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.ELASTIC_IP }}
username: ubuntu
key: ${{ secrets.PEM_KEY }}
script: |
set -e
sudo mkdir -p /home/ubuntu/app
sudo chown -R ubuntu:ubuntu /home/ubuntu/app
cd /home/ubuntu/app
# 최신 이미지 가져와서 컨테이너 교체 실행
sudo docker login -u "${{ secrets.DOCKER_USERNAME }}" -p "${{ secrets.DOCKER_PASSWORD }}"
sudo docker pull sungminju/mova:latest
# docker compose 플러그인/구버전 모두 대응
if command -v docker compose >/dev/null 2>&1; then
sudo docker compose up -d --remove-orphans
else
sudo docker compose -p mova up -d --remove-orphans
fi
# 오래된 이미지 정리(선택)
sudo docker image prune -af --filter "until=24h"