feat : 오라클 서버 배포 수정 #2
This file contains 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 EC2 | |
on: | |
push: | |
branches: [ master ] | |
env: | |
DOCKER_REPO_NAME: ${{ secrets.DOCKER_REPO_NAME }} | |
SHA: ${{ github.sha }} | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
- name: Cache Gradle packages | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | |
restore-keys: ${{ runner.os }}-gradle- | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Create application-prod.properties | |
run: | | |
touch src/main/resources/application-prod.properties | |
echo "$PROD_SPRING_PROPERTIES" > application-prod.properties.b64 | |
base64 -d -i application-prod.properties.b64 > src/main/resources/application-prod.properties | |
env: | |
PROD_SPRING_PROPERTIES: ${{ secrets.PROD_SPRING_PROPERTIES }} | |
- name: Build with Gradle | |
run: | | |
./gradlew clean build -Pprofile=prod --exclude-task test | |
- name: Docker Build | |
run: | | |
docker build --tag boo10500/$DOCKER_REPO_NAME:jmt-image-$GITHUB_SHA . -f Dockerfile-prod --platform linux/arm64/v8 | |
- name: Docker Push | |
run: | | |
docker login --username=boo10500 --password=${{ secrets.DOCKER_USER_PW }} | |
docker push boo10500/$DOCKER_REPO_NAME:jmt-image-$GITHUB_SHA | |
- name: Oracle Docker Deploy and Run | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.ORACLE_HOST }} | |
username: ubuntu | |
key: ${{ secrets.ORACLE_SSH_KEY }} | |
envs: DOCKER_REPO_NAME, SHA | |
script: | | |
sudo docker ps -aq --filter "name=jmt-prod" | xargs sudo docker stop | xargs sudo docker rm | |
sudo docker image prune -a -f | |
sudo docker pull boo10500/$DOCKER_REPO_NAME:jmt-image-$SHA | |
sudo docker run -d -p 8080:8080 --name jmt-prod boo10500/$DOCKER_REPO_NAME:jmt-image-$SHA |