Skip to content

Commit

Permalink
#14 chore: Docker Image + Github Action을 이용한 CI/CD 구축
Browse files Browse the repository at this point in the history
  • Loading branch information
seonghoo1217 committed Jun 20, 2024
1 parent 3959f00 commit b593baf
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 7 deletions.
17 changes: 10 additions & 7 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,35 @@ permissions:
contents: read

jobs:
# Spring Boot 애플리케이션을 빌드하여 도커허브에 푸시하는 과정
build-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

# 1. Java 17 세팅
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'temurin'

# 2. Spring Boot 애플리케이션 빌드
- name: Build with Gradle
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
with:
arguments: clean bootJar

# DockerHub 로그인
# 3. Docker 이미지 빌드
- name: docker image build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/github-actions-demo .

# 4. DockerHub 로그인
- name: docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: docker image build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/handtris-cd .

# Docker Hub 이미지 푸시
# 5. Docker Hub 이미지 푸시
- name: docker Hub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/handtris-cd
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/github-actions-demo
28 changes: 28 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Dockerfile

# jdk17 Image Start
#FROM --platform=linux/amd64 ubuntu:latest
FROM openjdk:21

# 인자 설정 - Jar_File
ARG JAR_FILE=build/libs/*.jar

# jar 파일 복제
COPY ${JAR_FILE} app.jar

# 인자 설정 부분과 jar 파일 복제 부분 합쳐서 진행해도 무방
#COPY build/libs/*.jar app.jar

# 실행 명령어
ENTRYPOINT ["java", "-jar", "app.jar"]

# docker build --platform linux/amd64 -t philip2767/demo .

# 아래의 과정으로 CD과정을 구축한다.
# 새로운 이미지 풀받기 sudo docker pull [username]/github-actions-demo
# 실행중인 컨테이너 종료하기 sudo docker stop demo (demo라는 이름으로 실행할 예정)
# 새로 풀받은 이미지 실행 sudo docker run --name demo --rm -d -p 8080:8080 [username]/github-actions-demo
# 기존 이미지 정리 sudo docker system prune -f (모두 예로 강제함)

# 모든 컨테이너 한번에 종료 sudo docker stop $(sudo docker ps -qa)
# 실행중인 모든 컨테이너 종료(컨테이너 존재하지 않아도 오류발생 x) sudo docker stop $(sudo docker ps -q) 2>/dev/null || true

0 comments on commit b593baf

Please sign in to comment.