본문 바로가기

728x90

분류 전체보기

(147)
Spring Boot에서 @ConfigurationProperties와 @ConfigurationPropertiesScan 완벽 이해 이전에 진행한 프로젝트 코드에서 메인 클래스에 @SpringBootApplication 외에 @ConfigurationPropertiesScan가 붙어 있는 것을 보고,“왜 @ConfigurationPropertiesScan이 필요할까?”라는 궁금증이 생겼습니다. 그래서 Spring Boot에서 설정 관련 기본 개념을 다시 정리해보았습니다. Spring Boot 프로젝트를 진행하다 보면, application.yml 또는 application.properties에 작성한 설정 값을 POJO로 매핑하고 싶은 경우가 많습니다.이때 사용하는 것이 바로 @ConfigurationProperties입니다. 하지만 중요한 점은, @ConfigurationProperties가 붙은 클래스는 자동으로 Spring Be..
쿠버네티스 배포 중 마주한 문제와 해결방법 Troubleshooting CI/CD 파이프라인을 만들다 보면 다양한 에러를 마주하게 됩니다.아래는 제가 실제로 마주쳤던 문제들과 해결 방법을 정리한 리스트입니다.1. ❌ ImagePullBackOff현상kubectl get pods# STATUS: ImagePullBackOff 원인Kubernetes가 컨테이너 이미지를 GHCR (private registry) 에서 가져오지 못함해결 방법GHCR Personal Access Token을 만들 때 read:packages 권한 포함했는지 확인Kubernetes Secret 생성kubectl create secret docker-registry ghcr-secret \ --docker-server=ghcr.io \ --docker-username= ..
React+Flask 어플리케이션: 코드부터 Jenkins 배포까지 (CI/CD) - 3 (Ingress 활용하기) 안녕하세요! 이 글에서는 https://silver-programmer.tistory.com/entry/ReactFlask-어플리케이션-코드부터-Jenkins-배포까지-CICD-2 에 이어서 Ingress를 이용해 Frontend + Backend를 하나의 도메인으로 배포하는 방법을 다루었습니다. Ingress 필요성 및 설치 → Helm values 설정 → Ingress 설정 → 배포/검증 → 서비스 확인 → 도메인 접속(Mac/Linux) → 마무리 이번 블로그에서 사용할 프로젝트 구조는 아래와 같습니다.ImageGallery/├── backend/│ ├── app/│ │ ├── main.py│ │ └── requirements.txt│ └── Dockerfile├── fron..
React+Flask 어플리케이션: 코드부터 Jenkins 배포까지 (CI/CD) - 2 이번 블로그는 CI/CD 1탄 에서 작성한 어플리케이션을 쿠버네티스 로 배포하는 과정을 정리했는데요, 진행한 내용은 아래와 같습니다.🚀 1. GitHub Actions가 main push를 감지 → Backend/Frontend 이미지를 빌드하여 GHCR(GitHub Container Registry) 로 푸시2. Actions가 Jenkins Webhook (HTTP POST) 호출 → Jenkins job 시작3. Jenkins가 GHCR로 로그인 → GHCR 에 있는 이미지를 Pull.4. Jenkins가 Kubernetes에 docker-registry secret(ghcr-secret)과 unsplash-secret을 생성(또는 업데이트).5. Jenkins가 Helm으로 image-galle..
Jenkins 배포 중 마주한 에러들과 해결방법 Jenkins를 사용하면서 Pipeline을 구성할 때, 특히 Docker와 React/Flask 프로젝트를 배포할 때 다양한 에러를 만나게 됩니다. 아래는 실제 경험을 바탕으로 흔히 마주치는 에러와 해결 방법을 정리했습니다.1️⃣ WorkflowScript: Undefined section "stage"WorkflowScript: 6: Undefined section "stage" @ line 6, column 6. stage('Checkout') { ^ 원인:Declarative Pipeline에서 stage 블록이 잘못된 위치에 있음pipeline { agent any ... } 블록 안에 있어야 함해결 방법:Jenkinsfile 구조 확인pipeline { agent..
React+Flask 어플리케이션: 코드부터 Jenkins 배포까지 (CI/CD) - 1 React+Flask 이미지 갤러리: (Mac · Docker · Jenkins)이 글은 그대로 따라 해도 로컬 실행부터 Docker Compose, 그리고 Jenkins를 통한 자동 배포까지 완주할 수 있도록 만든 실전형 가이드입니다. 진행 중 만났던 실제 오류들과 해결 방법을 전부 정리했습니다.최종 목표React(프론트) + Flask(백엔드)로 구성된 Unsplash 로 부터 이미지를 가지고 오는 이미지 갤러리 앱을 만든다.Unsplash API 키(Secret)를 사용해 키워드로 이미지를 검색한다.Docker Compose로 frontend + backend를 함께 띄운다.Jenkins 파이프라인으로 main 브랜치 push → 자동 빌드/배포까지 연결한다.준비물 (Mac 기준)Docker De..
🐳 Dockerfile 명령어 정리 1️⃣ 이미지 기반명령어설명예시FROM베이스 이미지 지정FROM openjdk:17-jdkARG빌드 시점 변수ARG VERSION=1.02️⃣ 메타데이터 & 라벨명령어설명예시LABEL이미지 메타데이터 추가LABEL maintainer="dev@company.com"ENV환경 변수 설정ENV SPRING_PROFILES_ACTIVE=prod3️⃣ 파일/디렉터리 작업명령어설명예시COPY파일/디렉터리 복사COPY target/myapp.jar /app/myapp.jarADDCOPY와 비슷 + URL 다운로드 가능ADD https://example.com/file.tar.gz /tmp/WORKDIR작업 디렉터리 지정WORKDIR /app4️⃣ 빌드 / 실행 관련명령어설명예시RUN이미지 빌드 시 명령어 실행RUN..
🐳 Docker 명령어 정리 1️⃣ Docker 기본 명령어명령어설명docker versionDocker 버전 확인docker infoDocker 환경 정보 확인docker loginDocker Hub 로그인docker logoutDocker Hub 로그아웃예시레지스트리에 이미지 업로드# 로그인docker login# 업로드docker tag myapp:1.0 myregistry.company.com/myapp:1.0docker push myregistry.company.com/myapp:1.02️⃣ 이미지 관련명령어설명docker pull 이미지 다운로드 (예: docker pull ubuntu:22.04)docker build -t : .현재 디렉터리의 Dockerfile로 이미지 빌드 (내가 만든 Dockerfile)docke..

728x90
반응형