홈 서버 구축기 - 스프링 배포 자동화 하기(with GitHub Action)

김남주·2025년 3월 14일

홈 서버 구축기

목록 보기
7/7

이전 포스팅에서 watch_tower를 통해 docker 컨테이너 자동 업데이트 기능을 활성화 하였다

따라서 도커 허브에 이미지만 잘 업로드 한다면 자동으로 업데이트를 진행할 수 있다

name: Build and Push Docker Image

on:
  push:
    branches:
      - "*"

jobs:
  build-and-push:
    name: Build Image and 
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 21
        uses: actions/setup-java@v4
        with:
          java-version: '21'
          distribution: 'temurin'

      - name: Setup Gradle
        uses: gradle/actions/setup-gradle@v3

      - name: Permissions for Gradle wrapper
        run: chmod +x gradlew


      - name: Get the version
        run: echo "VERSION=$(./gradlew properties -q | grep '^version:' | awk '{print $2}')" >> $GITHUB_ENV

      - name: Build with Gradle BootBuildImage
        run: ./gradlew clean bootBuildImage --imageName=${{ vars.REGISTRY_USERNAME}}/project_name:${{ env.VERSION }}


      - name: Git branch name
        id: git-branch-name
        uses: EthanSK/git-branch-name-action@v1

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.REGISTRY_USERNAME }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

      - name: Push to GitHub Container Registry
        run: |
          docker push ${{ vars.REGISTRY_USERNAME }}/project_name:${{ env.VERSION }}

여기서 중요한 키워드는 도커 이미지에 태그를 붙이는 것이다

아마 스프링을 빌드해보면 0.0.1-SNAPSHOT 같은 버전을 자주보게 될텐데,

profile
T자형 개발자를 꿈꾸는 학생 개발자입니다

0개의 댓글