Skip to content
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
56 changes: 34 additions & 22 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
token: ${{ secrets.GIT_TOKEN }}

# 1. Java 21 세팅
- name: Set up JDK 21
Expand All @@ -22,33 +25,37 @@ jobs:
java-version: '21'
distribution: 'temurin'

# 2. application-cloud.properties 생성
- name: Create application-cloud.properties
run: |
echo "eureka.client.service-url.defaultZone=${{ secrets.EUREKA_CLIENT_SERVICE_URL }}" > ./src/main/resources/application-cloud.properties
echo "eureka.instance.instance-id=aether-back-apigateway:${{ secrets.SERVER_PORT }}" >> ./src/main/resources/application-cloud.properties
echo "spring.cloud.gateway.routes[0].id=aether-back-auth" >> ./src/main/resources/application-cloud.properties
echo "spring.cloud.gateway.routes[0].uri=lb://aether-back-auth" >> ./src/main/resources/application-cloud.properties
echo "spring.cloud.gateway.routes[0].predicates[0]=Path=/auth/**,/oauth2/**,/login/**" >> ./src/main/resources/application-cloud.properties
# 2. gradle caching - 빌드 시간 향상
- name: Gradle Caching
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

# 3. SpringBoot 애플리케이션 빌드
# 2. SpringBoot 애플리케이션 빌드
- name: Build with Gradle
uses: gradle/actions/setup-gradle@v3
with:
arguments: clean bootJar
run: |
chmod +x ./gradlew
./gradlew clean bootJar

# 4. Docker 이미지 빌드
# 3. Docker 이미지 빌드
- name: Docker Image Build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway .
run: |
docker build --cache-from=type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway \
-t ${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway .

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

# 6. DockerHub 이미지 push
# 5. DockerHub 이미지 push
- name: DockerHub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway

Expand All @@ -62,14 +69,19 @@ jobs:
- name: Docker pull
run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway

# 2. 기존 컨테이너 중지
- name: Docker stop Container
run: sudo docker stop $(sudo docker ps -q) 2>/dev/null || true
# 2. 기존 컨테이너 중지 및 삭제
- name: Stop and Remove Existing Container
run: |
sudo docker stop aether-back-apigateway 2>/dev/null || true
sudo docker rm aether-back-apigateway 2>/dev/null || true

# 3. 최신 이미지를 컨테이너화하여 실행
- name: Docker run new Container
run: sudo docker run --name aether-back-apigateway --rm -d -p 8081:8081 ${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway
- name: Run New Container
run: |
sudo docker run --name aether-back-apigateway --rm -d \
-p 8081:8081 -e SPRING_PROFILES_ACTIVE=apigateway \
--network host ${{ secrets.DOCKERHUB_USERNAME }}/aether-back-apigateway

# 4. 미사용 이미지 정리
- name: Delete old Docker Image
run: sudo docker system prune -f
run: sudo docker image prune -f
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "aether-security"]
path = aether-security
url = https://github.com/9roomMoa/aether-security.git
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# jdk21 Image Start
FROM openjdk:21

# 프로파일 설정
ENV SPRING_PROFILES_ACTIVE=apigateway

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

Expand Down
1 change: 1 addition & 0 deletions aether-security
Submodule aether-security added at fa6e36
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,11 @@ dependencyManagement {
tasks.named('test') {
useJUnitPlatform()
}

processResources.dependsOn('copySecret')

tasks.register('copySecret', Copy) {
from './aether-security'
include 'application-apigateway.properties'
into 'src/main/resources'
}