Skip to content

chore(deps): Update eclipse-temurin Docker tag to v25#290

Closed
renovate[bot] wants to merge 1 commit into
developfrom
renovate/eclipse-temurin-25.x
Closed

chore(deps): Update eclipse-temurin Docker tag to v25#290
renovate[bot] wants to merge 1 commit into
developfrom
renovate/eclipse-temurin-25.x

Conversation

@renovate

@renovate renovate Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending
eclipse-temurin final major 21-jdk-noble25.0.2_10-jdk-noble 25.0.3_9-jdk-noble

Configuration

📅 Schedule: (in timezone Asia/Seoul)

  • Branch creation
    • "before 10am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@claude

claude Bot commented Jun 21, 2026

Copy link
Copy Markdown

Claude finished @renovate[bot]'s task in 1m 44s —— View job


🤖 Claude 의존성 영향도 분석

📦 변경점 요약

  • eclipse-temurin 21-jdk-noble → 25.0.2_10-jdk-noble (major)
  • Java 21 (LTS, 2023년 9월) → Java 25 (LTS, 2025년 9월) 로 4 메이저 버전 점프
  • 변경 범위: infra/base-image/Dockerfile 1줄 (FROM 이미지 태그만 교체)
  • 이 Dockerfile은 프로덕션 컨테이너의 베이스 이미지(qasker/q-asker-api-server-base:latest)를 빌드하는 소스 — LibreOffice + JDK가 함께 포함된 커스텀 이미지
  • ⚠️ PR에 Pending: 25.0.3_9-jdk-noble 표기 — 머지 직후 또 다른 Renovate PR 예상

🎯 Q-Asker 영향도: 🟡 MEDIUM

사용처:

  • infra/base-image/Dockerfile — Jib이 qasker/q-asker-api-server-base:latest를 베이스로 사용, JDK + LibreOffice가 함께 실행되는 런타임 환경
  • app/build.gradle:96image = "qasker/q-asker-api-server-base:latest" (Jib from.image)
  • .github/workflows/*.yml — CI 빌드는 모두 java-version: "21" (Temurin 21) 유지, 이 PR 영향 없음

빌드 타겟 vs 런타임 버전 불일치:

  • build.gradle:251: JavaLanguageVersion.of(21) — 컴파일 타겟 Java 21 (변경 없음)
  • CI 워크플로우 3개 모두 java-version: "21" — 컴파일·테스트 환경 그대로
  • 런타임만 Java 25 JVM으로 교체됨 (Java 21 바이트코드 → Java 25 JVM 실행)

예상 영향:

  • Java 21 바이트코드는 Java 25 JVM에서 하위 호환 실행됨 (JVM 스펙상 보장)
  • Spring Boot 3.5.8은 Java 25를 지원하는 버전대 (Spring Boot 3.3+ 부터 Java 25 실험적 지원 확인)
  • Virtual Threads(spring.threads.virtual.enabled: true) — Java 25에서도 정식 지원, 동작 변화 없음
  • LibreOffice가 Java 25 JDK 위에서 정상 기동되는지 컨테이너 레벨 확인 필요 (JODConverter가 LibreOffice 프로세스를 fork함)
  • Dockerfile 1행 주석 # eclipse-temurin:21-jdk-noble 가 구 버전 그대로 남아있음 — 주석 업데이트 필요

✅ 권장 액션

  • CI green 확인
  • 베이스 이미지 재빌드·Push: 이 PR은 Dockerfile만 변경 — 실제 qasker/q-asker-api-server-base:latest 이미지를 새로 빌드해서 Docker Hub에 푸시하는 작업이 별도로 필요
  • 로컬 또는 스테이징에서 ./gradlew jibDockerBuild 후 컨테이너 실행, LibreOffice 문서 변환(PPT/DOCX → PDF) 시나리오 검증
  • infra/base-image/Dockerfile 1행 주석 21-jdk-noble25-jdk-noble로 업데이트 (Fix this →)

📋 참고

  • Java 25는 Java 21 이후 첫 LTS — 장기 지원 관점에서 업그레이드 방향은 적절함
  • Java 21 → 25 migration guide에서 확인할 deprecated/removed API가 있는지 별도 검토 권장
  • 분석 모델: claude-sonnet-4-6

@renovate renovate Bot force-pushed the renovate/eclipse-temurin-25.x branch 6 times, most recently from 94c5971 to 932f983 Compare June 28, 2026 08:00
@renovate renovate Bot force-pushed the renovate/eclipse-temurin-25.x branch 6 times, most recently from 38695ca to d9c288d Compare July 3, 2026 01:20
@renovate renovate Bot force-pushed the renovate/eclipse-temurin-25.x branch from d9c288d to 89a0383 Compare July 3, 2026 02:51
@GulSauce

GulSauce commented Jul 3, 2026

Copy link
Copy Markdown
Member

결정: Defer (#294와 동조 처리)

근거:

  1. 런타임/빌드 baseline 불일치 우려: 프로젝트 Toolchain은 Java 21. Dockerfile만 25로 올리면 컴파일은 21 target, 런타임은 25 — 문서 vs 현실 divergence.
  2. Spring Boot 3.5.x + JDK 25: 부팅은 가능하나 공식 지원 매트릭스는 21 LTS까지 primary. GC/JIT 튜닝값 재조정이 필요할 수 있고 별도 관측 티켓 규모.
  3. PR #294와 결합: Spring Boot 4.x가 JDK 25를 요구하므로, Temurin 25는 그 마이그레이션과 함께 처리하는 것이 자연스러움.

재평가 트리거:

  • Spring Boot 4.x 이전 결정 시
  • 또는 Temurin 21의 vulnerability 발표로 강제 업그레이드가 필요한 시점

GulSauce added a commit that referenced this pull request Jul 3, 2026
## 반영된 버전 승격

- spring-boot     3.5.8  → 4.1.0  (MAJOR, PR #292#294)
- spring-ai       1.1.2  → 2.0.0  (MAJOR)
- google-cloud    26.67  → 26.84  (PR #293)
- jib             3.4.0  → 3.5.3  (PR #293)
- jodconverter    4.4.9  → 4.4.11 (PR #291)
- pdfbox          3.0.3  → 3.0.7  (PR #291)
- resilience4j    2.3.0  → 2.4.0  (PR #288, spring-boot4 모듈로 참조 교체)
- Temurin base    21     → 25     (PR #290)
- springdoc       2.8.17 → 3.0.3  (Boot 4 호환 라인)

## Boot 4 breaking change 해소

1. `spring-boot-starter-aop` 아티팩트 제거 → `spring-boot-starter-aspectj`로 rename
2. Jackson 3.x(tools.jackson) 도입:
   - com.fasterxml.jackson.databind.* → tools.jackson.databind.*
   - com.fasterxml.jackson.core.type.TypeReference → tools.jackson.core.type.TypeReference
   - com.fasterxml.jackson.core.JsonProcessingException → tools.jackson.core.JacksonException
   - ObjectNode.fields() 제거 → ObjectNode.properties() (Set<Entry>)
   - Iterator.forEachRemaining → Collection.forEach
   - com.fasterxml.jackson.annotation.*는 Jackson 3에서 그대로 유지
3. RateLimitFilter의 ObjectMapper 주입 실패 → auth-impl에 spring-boot-starter-json 명시
4. LegacyJacksonConfig 신설(global/config):
   - RestClient.Builder Bean 명시 (SlackNotifier용)
   - CacheManager Bean 명시 (@EnableCaching 대응)
5. resilience4j-spring-boot3 → resilience4j-spring-boot4 (Boot 4 전용 모듈)
6. SpringDoc 3.0.3 승격 (2.x는 Boot 4의 WebMvcProperties를 못 찾음)

## 신규 회귀 세이프티 넷

- app/src/test/.../ApplicationContextBootTest (RT-001 + RT-004):
  contextLoads / chatModelBeanIsPresent / aiServerCircuitBreakerIsRegisteredWithExpectedConfig
- modules/quiz-ai/impl/src/test/.../PdfUtilsTest (RT-003):
  pdfbox extractPages 정상 슬라이스 / 범위 초과 무시 / 빈 리스트 원본 반환
- modules/quiz-ai/impl/src/test/.../GeminiChatServiceSmokeTest (RT-005):
  Spring AI 2.0의 chatModel.call → JSON 파싱 사슬 유지 확인

## 검증

- ./gradlew build GREEN
- ./gradlew spotlessCheck GREEN
- pre-push hook 통과

## 남은 후속 티켓 후보

- Jackson 3.x 도입 후 LegacyJacksonConfig 클래스명 재검토 (이제 Jackson과 무관)
- Temurin 25 base 이미지 재빌드 + LibreOffice 설치·GC 튜닝 검증 (docker build)
- 첫 프로덕션 배포 후 Actuator/Micrometer 태그 변경 및 GC pause 관측

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@GulSauce GulSauce closed this Jul 4, 2026
@GulSauce GulSauce deleted the renovate/eclipse-temurin-25.x branch July 5, 2026 02:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant