728x90
반응형
SMALL

cicd 4

[CI/CD] paths-filter 하나로 빌드 시간 72% 단축하기

배경사이드 프로젝트를 개발하면서 GitHub Actions로 CI/CD를 운영하고 있습니다.프론트엔드(Next.js)와 백엔드(Spring Boot + Docker)를 하나의 레포에서 관리하다 보니,텍스트 하나 수정해도 매번 풀빌드가 돌았습니다.Node.js 설치 → npm ci → Next.js 빌드JDK 설치 → Gradle 빌드 → Docker 빌드 → Docker 푸시 → 서버 배포 평균 소요 시간: 약 3분대...!FE 수정 1줄 → 백엔드 Docker 이미지까지 새로 빌드 → 배포까지 3분 대기문제 분석# 기존: 모든 커밋에서 무조건 전체 실행- name: Build with Gradle # BE 변경이 없어도 항상 실행 run: ./gradlew build -x test- nam..

IT/etc 2026.03.13

[Docker] 컨테이너 파일을 서버에 마운트하기 : Docker + Volume Mount

🎯 문제: 컨테이너의 파일을 호스트에서 어떻게 접근할까?일반적인 상황:Docker 컨테이너 내부└─ /app/crawler/main.py (크롤러 파일)호스트(서버) 시스템└─ /home/opc/career-lens/crawler/ (비어있음 😢)크론잡└─ python3 /home/opc/career-lens/crawler/main.py (파일이 없어서 실행 불가!)원인: 컨테이너와 호스트의 파일시스템이 분리되어 있음✨ 해결책: Docker Volume Mount (-v 옵션)docker run -v /app/crawler:/home/opc/career-lens/crawler \ career-lens:latest의미:컨테이너의 /app/crawler/↔️ 호스트의 /home/opc/career..

IT/etc 2026.01.27

[CICD] 커밋만 하면 배포되게 만들기: GitHub Actions + Docker CI/CD 삽질기

커밋만 하면 배포되게 만들고 싶었다: GitHub Actions + Docker CI/CD 삽질기1. 글을 쓰게 된 배경Spring Boot 프로젝트를 하나 새로 시작하면서, 커밋만 하면 자동으로 서버에 배포되는 구조를 처음부터 제대로 만들어보고 싶었다.그동안 회사에서는 이미 잘 짜여진 CI/CD 파이프라인 위에서만 작업하다 보니, 정작 Docker, GitHub Actions, 서버 배포를 처음부터 끝까지 직접 구성해본 경험은 많지 않았다.이번에 개인 프로젝트를 하면서 다음을 목표로 잡았다.Spring Boot + Java 17GitHub Actions 기반 CI/CDDocker Hub 이미지 빌드 및 푸시Oracle Cloud 무료 서버에 컨테이너 배포그리고… 역시나 한 번에 될 리는 없었다 😅이 ..

IT/etc 2026.01.20

[CICD] Execute permission for Gradle Wrapper in CI workflow

github actions 126 에러 코드 발생시 해결 방법 build-and-deployProcess completed with exit code 126. .github/workflows/docker-ci.yml 파일에 Gradle Wrapper 실행 권한 부여해주기 (3.1.처럼)# 3.1. Gradle Wrapper 실행 권한 부여 (exit code 126 해결)- name: Grant execute permission for gradlew run: chmod +x gradlew# 3.2. Gradle 빌드 (초기엔 테스트 제외 권장)- name: Build with Gradle # run: ./gradlew build # 전체 빌드 (테스트 포함) run: ./gradlew build..

IT/etc 2026.01.20
728x90
반응형
LIST