From dfa0ab8c0c8686a58d4d00fe4d96ecb320da5894 Mon Sep 17 00:00:00 2001 From: hiondal Date: Fri, 12 Sep 2025 19:25:20 +0900 Subject: [PATCH] =?UTF-8?q?Docker=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EB=B9=8C=EB=93=9C=20=EC=98=A4=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. JDK 버전 일치성 문제 해결 - Dockerfile OpenJDK 23 → Eclipse Temurin 21로 변경 - 프로젝트 JDK 21과 일치시킴 2. Docker Hub Rate Limit 해결 - Jenkinsfile에 Docker Hub 로그인 추가 - dockerhub-credentials 자격증명 설정 필요 - eclipse-temurin 이미지로 변경하여 안정성 향상 3. Jenkins 가이드 업데이트 - Docker Hub Credentials 설정 방법 추가 - Rate Limit 문제 해결 방안 제시 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- deployment/cicd/Jenkinsfile | 23 +++++++++++++++++------ deployment/cicd/jenkins-pipeline-guide.md | 10 +++++++++- deployment/container/Dockerfile-backend | 4 ++-- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/deployment/cicd/Jenkinsfile b/deployment/cicd/Jenkinsfile index fd84718..804b46a 100644 --- a/deployment/cicd/Jenkinsfile +++ b/deployment/cicd/Jenkinsfile @@ -123,12 +123,23 @@ podTemplate( stage('Build & Push Images') { timeout(time: 30, unit: 'MINUTES') { container('podman') { - withCredentials([usernamePassword( - credentialsId: 'acr-credentials', - usernameVariable: 'USERNAME', - passwordVariable: 'PASSWORD' - )]) { - sh "podman login acrdigitalgarage01.azurecr.io --username \$USERNAME --password \$PASSWORD" + withCredentials([ + usernamePassword( + credentialsId: 'acr-credentials', + usernameVariable: 'ACR_USERNAME', + passwordVariable: 'ACR_PASSWORD' + ), + usernamePassword( + credentialsId: 'dockerhub-credentials', + usernameVariable: 'DOCKERHUB_USERNAME', + passwordVariable: 'DOCKERHUB_PASSWORD' + ) + ]) { + // Docker Hub 로그인 (rate limit 해결) + sh "podman login docker.io --username \$DOCKERHUB_USERNAME --password \$DOCKERHUB_PASSWORD" + + // ACR 로그인 + sh "podman login acrdigitalgarage01.azurecr.io --username \$ACR_USERNAME --password \$ACR_PASSWORD" services.each { service -> sh """ diff --git a/deployment/cicd/jenkins-pipeline-guide.md b/deployment/cicd/jenkins-pipeline-guide.md index d4adcf6..909ca41 100644 --- a/deployment/cicd/jenkins-pipeline-guide.md +++ b/deployment/cicd/jenkins-pipeline-guide.md @@ -43,7 +43,15 @@ Manage Jenkins > Credentials > Add Credentials - Password: {ACR_PASSWORD} ``` -#### 3. SonarQube Token +#### 3. Docker Hub Credentials (Rate Limit 해결용) +``` +- Kind: Username with password +- ID: dockerhub-credentials +- Username: {DOCKERHUB_USERNAME} +- Password: {DOCKERHUB_PASSWORD} +``` + +#### 4. SonarQube Token ``` - Kind: Secret text - ID: sonarqube-token diff --git a/deployment/container/Dockerfile-backend b/deployment/container/Dockerfile-backend index 3fc31a3..66d7f45 100644 --- a/deployment/container/Dockerfile-backend +++ b/deployment/container/Dockerfile-backend @@ -1,11 +1,11 @@ # Build stage -FROM openjdk:23-oraclelinux8 AS builder +FROM eclipse-temurin:21-jdk AS builder ARG BUILD_LIB_DIR ARG ARTIFACTORY_FILE COPY ${BUILD_LIB_DIR}/${ARTIFACTORY_FILE} app.jar # Run stage -FROM openjdk:23-slim +FROM eclipse-temurin:21-jre ENV USERNAME=k8s ENV ARTIFACTORY_HOME=/home/${USERNAME} ENV JAVA_OPTS=""