๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Project ESG+AI/[์‚ผ์ •KPMG]ESG ๋ฐ์ดํ„ฐ ํ™œ์šฉ ํ’€์Šคํ… ๊ฐœ๋ฐœ

26์ผ์ฐจ.

by GreenJin_S2 2025. 11. 13.

 

์ด๊ฒŒ ๋งž๊ฒŒ ๋“ค์–ด๊ฐ”์–ด์•ผ ์—๋Ÿฌ๊ฐ€ ์•ˆ๋‚จ

 

 

 

 

๋„์ปคํŒŒ์ผ ๋„ฃ๊ธฐ

 

 

openjdk:21-jdk-slim

 

openjdk:21-jdk-slim  ๊ฒ€์ƒ‰

 

 

 

๋น„์–ด์žˆ๋Š” ๋„์ปคํŒŒ์ผ ๋Œ์–ด๋†“๊ณ  ์ด ํ˜•์‹๊ณผ ๋ฒ„์ „๋Œ€๋กœ ์ด ๋งฅ๋ฝ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ค˜

 

FROM openjdk:17-jdk-slim
VOLUME /tmp
RUN apt-get update && apt-get install -y curl
COPY ./build/libs/*.jar user-service.jar
ENTRYPOINT ["java", "-jar", "/user-service.jar"]

 

Dockerfile๋“ค์„ @Dockerfile ์ด ํ˜•์‹๊ณผ ๋ฒ„์ „๋Œ€๋กœ ์ด ๋งฅ๋ฝ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ค˜

 

๊ทธ๋Ÿฌ๋ฉด ๊ฐ๊ฐ์— ๋งž๊ฒŒ ๋งŒ๋“ค์–ด์ง! (์ปค์„œ๊ฐ€!)

 

 

๋„์ปค ์ปดํฌ์ฆˆ ํŒŒ์ผ ๋Œ์–ด๋†“๊ณ  , ์—ฌ๊ธฐ์— ๊ฐ๊ฐ์˜ Dockerfile๊ณผ ์—ฐ๋™ํ•˜๋„๋ก ๋“ฑ๋กํ•ด์ค˜. 

 

 

docker-compose up --build

 

 

ํ„ฐ๋ฏธ๋„์— ์ด๋ ‡๊ฒŒ ์“ฐ๊ธฐ 

 

 

์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ตœ์ข…์ ์œผ๋กœ AWS ์— ๋ฐฐํฌํ•˜๋ ค๊ณ  ํ•ด ๊ทธ๋Ÿฐ๋ฐ ์ถ”ํ›„์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ๋ฐฐํฌํ•  ๊ฑด๋ฐ ์ง€๊ธˆ์€ ๋„์ปค ์ปดํฌ์ฆˆ๋กœ ํ•˜๋Š” ์ค‘์ด์•ผ. ๋นŒ๋“œ์ค‘์— => ERROR [common-service internal] load metadata for docker.io/library/openjdk:17-jdk-slim OPENJDK ๋ฒ„์ „์ด์Šˆ๊ฐ€ ์žˆ์–ด ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ฌด๋ฃŒ์ธ JDK์ค‘์—์„œ ๊ฐ€์žฅ ์ตœ์‹ ์ธ ๊ฒƒ์„ ์ถ”์ฒœํ•ด์ค˜.

 

 

 

ํ˜„์žฌ openjdk:17-jdk-slim ์ด๋ฏธ์ง€๋ฅผ ์“ฐ๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฑด,
Docker Hub์—์„œ ํ•ด๋‹น ์ด๋ฏธ์ง€๊ฐ€ deprecated(์ง€์› ์ค‘๋‹จ) ๋˜์—ˆ๊ฑฐ๋‚˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ถŒํ•œ/์†๋„ ๋ฌธ์ œ ๋•Œ๋ฌธ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์š”.

์ด์ฐธ์— ๋ฌด๋ฃŒ ๋ผ์ด์„ ์Šค(์˜คํ”ˆ์†Œ์Šค) + ์žฅ๊ธฐ์ง€์›(LTS) + ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค/AWS ์นœํ™”์ ์ธ ์ตœ์‹  JDK๋กœ ๋ฐ”๊พธ๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.


โœ… ์ถ”์ฒœ 1: Eclipse Temurin (Adoptium)

๊ฐ€์žฅ ์•ˆ์ •์ ์ด๊ณ , ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์—์„œ๋„ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋ฌด๋ฃŒ OpenJDK ๋ฐฐํฌํŒ

  • ์ด๋ฏธ์ง€ ์ด๋ฆ„: eclipse-temurin:21-jdk
  • ๋ผ์ด์„ ์Šค: Eclipse Public License 2.0 → ์™„์ „ ๋ฌด๋ฃŒ
  • LTS ๋ฒ„์ „: 21 (2023๋…„ ์ถœ์‹œ, 2030๋…„๊นŒ์ง€ ์ง€์›)
  • ์žฅ์ :
    • AWS, Kubernetes, Docker ๋ชจ๋‘ ๊ณต์‹ ์ง€์›
    • Oracle JDK์™€ ์™„๋ฒฝ ํ˜ธํ™˜
    • slim ์ด๋ฏธ์ง€ ์ œ๊ณต (eclipse-temurin:21-jdk-jammy ๋“ฑ)

๐Ÿ‘‰ Dockerfile ์˜ˆ์‹œ:

 
FROM eclipse-temurin:21-jdk-jammy WORKDIR /app COPY . . RUN ./gradlew clean build -x test CMD ["java", "-jar", "build/libs/app.jar"]
 
 

 
Dockerfile๋“ค์„ ์—ฌ๊ธฐ์— eclipse-temurin:21-jdk-ubi9-minimal๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•ด์„œ ์ž‘์—…ํ•˜๊ณ , ๋„์ปค ์ปดํฌ์ฆˆ๊นŒ์ง€ ์ ์šฉํ•ด์ค˜
 
์—๋Ÿฌ ๋ณต์‚ฌํ•˜๊ณ  ์ปค์„œํ•œํ…Œ ์žก์•„๋‹ฌ๋ผ๊ณ ํ•จ . run์„ ์ง€์šฐ๋ฉด ์—๋Ÿฌ๋Š” ์•ˆ๋œธ
 
 
์ง€๊ธˆ native๋ฐฉ์‹์œผ๋กœ ๋˜์–ด์žˆ์–ด์„œ instance์— ๋ญ๊ฐ€ ์•ˆ๋œจ๋Š” ๊ฑฐ ๊ฐ™์€๋ฐ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผํ•ด?
  
  
์ธ์Šคํ„ด์Šค์— ๋ชฉ๋ก์ด ๋œจ๊ฒŒ ์ˆ˜์ •ํ•ด์คŒ
 
 

 

์œ ๋ ˆ์นด ์„œ๋ฒ„ ๋ˆŒ๋Ÿฌ์„œ ๋ชฉ๋ก ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต! 

 

 

 

์šฐ์„  esgseed postgre ๋งŒ๋“ค๊ธฐ 

 

 


1- 
docker pull postgres:16


2-
docker run -d --name esgseed --restart unless-stopped -e POSTGRES_USER=esgseed -e POSTGRES_PASSWORD=esgseed1234 -e POSTGRES_DB=esgseeddb -p 5432:5432 -v pgdata:/var/lib/postgresql/data --health-cmd="pg_isready -U app" --health-interval=10s --health-timeout=5s --health-retries=5 postgres:16

3-
docker ps


docker exec -it esgseed bash


5-
root@4da107a874d3:/# psql -U esgseed -d esgseeddb

6- ์ด ํ™”๋ฉด์ด ๋‚˜์˜ค๋ฉด db ์ ‘์†๊นŒ์ง€ ์™„์„ฑ์ž…๋‹ˆ๋‹ค.
esgseeddb=#

 

\d ์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒƒ๋„ ํ™•์ธ!


 

 

๋ชจ๋‘ ๋‹ค ์ง€์šฐ๊ณ  

 

์ด๋ ‡๊ฒŒ ํ•˜์ง€๋ง๊ณ  ์ปค์„œ์— ์‹œํ‚ค๊ธฐ


postgre 16์•ŒํŒŒ์ธ์œผ๋กœ db๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•ด ๋„์ปค์ปดํฌ์ฆˆ @docker-compose.yaml ๋ฅผ ์ด์šฉํ•ด์„œ docker compose ๋ช…๋ น์–ด๋กœ ๋ฐ”๋กœ ์ถ”๊ฐ€ํ•˜๊ฒŒ ํ•ด์ค˜


# 2. Docker Compose๋กœ ๋ชจ๋“  ์„œ๋น„์Šค ์‹œ์ž‘
docker-compose up --build -d

 

 

์ˆ˜์ •ํ•ด์ฃผ๊ณ  ๋งจ ์œ„๋กœ ์˜ฌ๋ฆฌ๊ธฐ(์ถ”์ฒœ)

 

 

ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•˜๊ธฐ

 

docker-compose up --build -d

 

 

 

 

 

์ด๋Ÿฐ ํ™”๋ฉด์ด ๋œธ

 

 

 

๊ฒฝ๋กœ๋ฅผ 

 

 


 

docker compose down

docker compose up --build