본문 바로가기

기타

Dockerfile 설정 업데이트

 

문제 상황

- CI/CD 배포 도중 Dockerfile에서 에러 발생

Run docker build . --file Dockerfile --tag fitview-be:latest
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 337B done
#1 DONE 0.0s

#2 [auth] library/openjdk:pull token for registry-1.docker.io
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/library/openjdk:17-jdk-slim
#3 ERROR: docker.io/library/openjdk:17-jdk-slim: not found
------
 > [internal] load metadata for docker.io/library/openjdk:17-jdk-slim:
------
Dockerfile:1
--------------------
   1 | >>> FROM openjdk:17-jdk-slim
   2 |     COPY build/libs/app-0.0.1-SNAPSHOT.jar app.jar
   3 |     #ENTRYPOINT ["java", "-jar", "/app.jar"]
--------------------
ERROR: failed to build: failed to solve: openjdk:17-jdk-slim: failed to resolve source metadata for docker.io/library/openjdk:17-jdk-slim: docker.io/library/openjdk:17-jdk-slim: not found
Error: Process completed with exit code 1.

 

문제 인식

Dockerfile - FROM 란에서 에러가 발생한 것으로 확인

 

 

문제 원인

https://github.com/docker-library/openjdk/tree/master

  • github → Docker Official Images openjdk
    • 도커에서 제공하는 openjdk가 deprecated 되었다고 명시되어있음
    • 공식 문서에서는 openjdk를 대체할 목록을 제시
      • amazoncorretto
      • eclipse-temurin
      • ibm-semeru-runtimes
      • ibmjava
      • sapmachine
  • 결론
    • openjdk는 더이상 지원안하고, 다른 대체제를 찾아야함

 

 

openjdk 대체제 선택

  • openjdk를 대체하기 위해서 다음 중에서 선택이 필요
    • amazoncorretto
    • eclipse-temurin
    • ibm-semeru-runtimes
    • ibmjava
    • sapmachine
  • 결과적으로 다음과 같은 선택지로 좁힘
    • amazoncorretto
    • eclipse-temurin
    • ⇒ 제일 많은 다운로드 수를 기록하기 때문에 2개 중에서 선택하는게 안정적일 것이라 판단

최종적으로 eclipse 선택

  • 이유

1. 더 많은 업데이트

 

  • ⇒ eclipse 쪽에서 확연히 더 많은 업데이트가 이뤄짐

 

2. 사용이 용이함

 

 

최종) Dockerfile 수정

  • FROM openjdk:17-jdk-slim
  • → FROM eclipse-temurin:17-jdk-jammy
#FROM openjdk:17-jdk-slim
FROM eclipse-temurin:17-jdk-jammy

COPY build/libs/app-0.0.1-SNAPSHOT.jar app.jar
#ENTRYPOINT ["java", "-jar", "/app.jar"]

# JVM 시간 설정 - 서울 기준 (스케쥴러 작동을 위함)
ENV TZ=Asia/Seoul
ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-Duser.timezone=${TZ}", "-jar", "/app.jar"]

'기타' 카테고리의 다른 글

모니터링툴 도입  (0) 2026.01.20
이미지 전송  (0) 2025.02.07