Skip to content

Update README.md

Update README.md #66

Workflow file for this run

name: Continuous Deployment
on:
push:
branches: [develop]
permissions:
actions: read
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
env:
IMAGE_NAME: jeongminju45/myapp
steps:
# 1. 깃허브 저장소 코드 내려받기
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.sha }}
# 3. JDK 설치
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: temurin
# 4. 버전 정보 정의 (날짜 기반 태그)
- name: Set VERSION
id: set_version
run: echo "VERSION=$(date +%Y%m%d%H%M%S)" >> $GITHUB_OUTPUT
# 5. Docker 이미지 빌드 및 푸시 (고유 태그 + latest)
- name: Build & Push Docker Image
run: |
docker build \
-t $IMAGE_NAME:${{ steps.set_version.outputs.VERSION }} \
-t $IMAGE_NAME:latest .
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker push $IMAGE_NAME:${{ steps.set_version.outputs.VERSION }}
docker push $IMAGE_NAME:latest
shell: bash
- name: Upload docker-compose.yml to EC2
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
source: docker-compose.yml
target: /home/ec2-user/myapp/
# 6. EC2로 배포 (고유 태그로 pull )
- name: Deploy to EC2
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
IMAGE_TAG=${{ steps.set_version.outputs.VERSION }}
IMAGE_NAME=jeongminju45/myapp
cd /home/ec2-user/myapp
echo "🧪 IMAGE_NAME=$IMAGE_NAME"
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker-compose down
docker rmi $IMAGE_NAME:$IMAGE_TAG || true
docker pull $IMAGE_NAME:$IMAGE_TAG
sed -i "/^\s*app:/,/^\s*[a-z]*:/ s|image:.*|image: $IMAGE_NAME:$IMAGE_TAG|" docker-compose.yml
docker-compose up -d