Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy/#52-deploy-docker-file #56

Merged
merged 6 commits into from
Nov 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 36 additions & 4 deletions .github/workflows/gradle.yml → .github/workflows/deploy.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,29 @@
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Java CI with Gradle
name: Deploy Backend on Development Server

on:
workflow_dispatch:

permissions:
contents: read

env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
KEY: ${{ secrets.KEY }}
PORT: ${{ secrets.PORT }}
INSTANCE_PATH: ./backend-dev
IMAGE_NAME: shinsion/uspray-server
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

시온님 도커허브에 이미지가 올라가는 거죠? 기존에는 규민오빠 계정에 올라가있었나요? @mulmuri



jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Checkout
uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
Expand All @@ -43,3 +51,27 @@ jobs:

- name: Build with Gradle
run: ./gradlew clean build

- name: Dockerhub login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker image build and push
run: |
docker build -t ${{ env.IMAGE_NAME }} .
docker push ${{ env.IMAGE_NAME }}

- name: Pull docker image to server
uses: appleboy/ssh-action@master
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 이 appleboy는 뭔가요? 어렵네요 ..

with:
host: ${{ env.HOST }}
username: ${{ env.USERNAME }}
key: ${{ env.KEY }}
port: ${{ env.PORT }}
script: |
docker stop uspray-server
docker rm uspray-server
docker rmi ${{ env.IMAGE_NAME }}: latest
docker-compose up -d
77 changes: 77 additions & 0 deletions .github/workflows/deploy.dev2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Deploy Backend on Development Server

on:
workflow_dispatch:

permissions:
contents: read

env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
KEY: ${{ secrets.KEY }}
PORT: ${{ secrets.PORT }}
INSTANCE_PATH: ./backend-dev
IMAGE_NAME: shinsion/uspray-server


jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

- name: Make gradlew executable
run: chmod +x ./gradlew # Gradle 스크립트 파일에 실행 권한을 부여합니다.

- name: Create application.yml
run: |
mkdir -p ./src/main/resources
cd ./src/main/resources
echo "${{ secrets.APPLICATION }}" base64 -d > application.yml

- name: Create service-account-file.json
run: |
mkdir -p ./src/main/resources/firebase
cd ./src/main/resources/firebase
echo "${{ secrets.SERVICE_ACCOUNT_FILE }}" base64 -d > service-account-file.json

- name: Build with Gradle
run: ./gradlew clean build

- name: Dockerhub login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker image build and push
run: |
docker build -t ${{ env.IMAGE_NAME }} .
docker push ${{ env.IMAGE_NAME }}

- name: Pull docker image to server
uses: appleboy/ssh-action@master
with:
host: ${{ env.HOST }}
username: ${{ env.USERNAME }}
key: ${{ env.KEY }}
port: ${{ env.PORT }}
script: |
docker stop uspray-server
docker rm uspray-server
docker rmi ${{ env.IMAGE_NAME }}: latest
docker-compose up -d
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM openjdk:11-jdk

WORKDIR /app

ARG JAR_FILE=build/libs/uspray-0.0.1-SNAPSHOT.jar

COPY ${JAR_FILE} .

ENTRYPOINT ["java","-jar","uspray-0.0.1-SNAPSHOT.jar"]