Загрузка...

7강 Github Action CI 구축 with Docker

안녕하세요! 이번 영상은 GitHub Actions와 Docker를 활용해 CI(지속적 통합) 환경을 구축하는 방법을 단계별로 쉽게 설명해 드립니다. GitHub 저장소 생성부터 Docker 이미지 자동 빌드 및 배포까지 실습하며, CI/CD의 핵심 개념과 실무 적용법을 배울 수 있어요.

목차
1. 👋 CI/CD와 GitHub Actions 소개
2. 🔧 GitHub 저장소 만들기 및 개인 액세스 토큰 발급
3. 🛠 Eclipse에서 Git 연동 및 .gitignore 설정
4. 🚀 프로젝트 GitHub에 커밋 및 푸시하기
5. ⚙ GitHub Actions 워크플로우 설정 (Maven 빌드 + Docker 배포)
6. 🔐 GitHub 시크릿에 Docker 로그인 정보 등록하기
7. 🏃‍♂ 코드 변경 시 자동 빌드 및 Docker 이미지 푸시 확인
8. 💡 마무리 및 앞으로의 학습 방향

---

## 👋 CI/CD와 GitHub Actions 소개 [00:00:25]
- CI/CD는 지속적 통합과 지속적 배포를 뜻해요.
- 여기서는 CI, 즉 코드 변경 시 자동으로 빌드하고 테스트하는 과정을 GitHub Actions로 구현합니다.
- 과거에는 Jenkins 등 별도 서버를 설치해 사용했지만, GitHub Actions는 GitHub 내에서 바로 설정 가능해 간편해요.

## 🔧 GitHub 저장소 만들기 및 개인 액세스 토큰 발급 [00:02:48]
- GitHub에 로그인 후 새 저장소(repository)를 만듭니다.
- 저장소 이름과 설명을 입력하고 공개 여부를 설정해요.
- 개인 액세스 토큰(Personal Access Token)을 발급받아 인증에 사용합니다.
- GitHub 우측 상단 프로필 ☞ Settings ☞ Developer settings ☞ Personal access tokens ☞ Generate new token
- 토큰 이름, 기간, 권한(주로 repo, workflow 등)을 선택 후 생성합니다.
- 토큰은 한 번만 보여주니 꼭 복사해 두세요!

## 🛠 Eclipse에서 Git 연동 및 .gitignore 설정 [00:08:31]
- Eclipse IDE에서 프로젝트를 Git과 연결해요.
- `.gitignore` 파일을 만들어 불필요한 파일(예: 컴파일된 클래스, IDE 설정 파일 등)을 Git에 올리지 않도록 설정합니다.
- 예를 들어, `target/`, `.classpath`, `.project` 등이 보통 제외 대상입니다.

## 🚀 프로젝트 GitHub에 커밋 및 푸시하기 [00:12:01]
- Eclipse에서 프로젝트를 GitHub 저장소에 공유(Share Project)합니다.
- 커밋 메시지를 작성하고 변경 사항을 스테이징 후 커밋합니다.
- 푸시(push) 명령으로 원격 저장소에 변경사항을 업로드합니다.
- 이때 인증은 앞서 발급받은 토큰을 사용해 안전하게 처리합니다.

## ⚙ GitHub Actions 워크플로우 설정 (Maven 빌드 + Docker 배포) [00:17:02]
- GitHub 저장소의 Actions 탭에서 기본 제공하는 Maven 빌드 템플릿을 선택합니다.
- `.github/workflows/maven.yml` 파일이 생성되며, 이 파일에 빌드 및 Docker 배포를 위한 명령어를 작성합니다.
- 주요 내용:
1. 메인 브랜치에 푸시되거나 PR이 생성될 때 실행
2. JDK 17 환경에서 Maven 빌드 수행
3. Docker 로그인 후 이미지 빌드 및 Docker Hub에 푸시
- Docker Hub 로그인 정보는 GitHub 시크릿에 저장해 보안 유지

## 🔐 GitHub 시크릿에 Docker 로그인 정보 등록하기 [00:23:50]
- GitHub 저장소 설정(Settings) ☞ Secrets and variables ☞ Actions에서 시크릿을 추가합니다.
- `DOCKER_USERNAME`, `DOCKER_PASSWORD` 같은 이름으로 Docker Hub 계정 정보를 저장해요.
- 이렇게 하면 워크플로우에서 안전하게 로그인 정보를 사용할 수 있습니다.

## 🏃‍♂ 코드 변경 시 자동 빌드 및 Docker 이미지 푸시 확인 [00:26:22]
- 프로젝트 코드에 변경사항을 커밋하고 푸시하면 GitHub Actions가 자동으로 실행됩니다.
- 빌드 로그를 통해 Maven 빌드, Docker 이미지 생성, Docker Hub 푸시 과정을 실시간으로 확인할 수 있어요.
- 성공 시 녹색 체크 표시가 뜨고, Docker Hub에서 최신 이미지가 업데이트된 것을 확인할 수 있습니다.

## 💡 마무리 및 앞으로의 학습 방향 [00:31:21]
- 이번 강의로 GitHub Actions와 Docker를 활용한 CI 환경 구축 기본을 익혔습니다.
- 앞으로 UI/UX 작업과 Docker Compose를 활용한 복합 서비스 배포도 배울 예정입니다.
- 처음에는 복잡해 보여도 차근차근 따라 하면 충분히 이해할 수 있으니 꾸준히 연습해 보세요!

---

### 요약
이번 영상은 GitHub Actions를 이용해 Maven 기반 스프링 부트 프로젝트를 자동으로 빌드하고, Docker 이미지로 만들어 Docker Hub에 자동 배포하는 CI 환경 구축법을 다룹니다. GitHub 저장소 생성, 개인 액세스 토큰 발급, Eclipse 연동, 워크플로우 설정, 시크릿 관리, 자동 빌드 및 배포까지 실습하며 실무에 바로 적용 가능한 내용을 쉽게 배울 수 있어요. CI/CD에 처음 입문하는 분들께 강력 추천합니다!

maven.yml 파일 👇👇👇👇
-------------------------------------------------------------------------------------------------------------------------
# This workflow will build a Java project with Maven, 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-maven

name: Build

# 어떤 브랜치에서든 코드가 push될 때마다 workflow가 실행
on:
push:
branches: [ "**" ]

jobs:
build-bookmark-api:
name: Build bookmark-api
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./bookmarker-api

steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'maven'

# Maven build 작업 시 권한으로 인한 접근 허용
- name: Build with Maven
run: |
chmod +x mvnw
./mvnw verify

# docker의 tty 명령어를 사용하기 위한 환경설정
- name: Build and Publish Docker Image
if: ${{ github.ref == 'refs/heads/main' }}
run: |
./mvnw clean package jib:dockerBuild -DskipTests
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -t myimage:latest .
docker tag myimage:latest ${{ secrets.DOCKER_USERNAME }}/bookmarker-api:latest
docker push ${{ secrets.DOCKER_USERNAME }}/bookmarker-api:latest
env:
DOCKER_BUILDKIT: 1
DOCKER_CLI_EXPERIMENTAL: enabled

-----------------------------------------------------------------------------------------------------------------------

#GitHubActions #CI환경구축 #Docker배포 #지속적통합 #CICD #DevOps기초 #스프링부트배포
#Maven빌드 #자동배포 #Git연동 #개발강의 #풀스택개발 #Java개발자 #SpringBoot #초보개발자추천

Видео 7강 Github Action CI 구축 with Docker канала 전민균의 FullStack Camp
Страницу в закладки Мои закладки
Все заметки Новая заметка Страницу в заметки

На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.

Об использовании CookiesПринять