[심화] 19. 엔트리 포인트

백하림's avatar
Jul 31, 2025
[심화] 19. 엔트리 포인트
🔥

📌 ENTRYPOINT란?

  • ENTRYPOINT컨테이너가 시작될 때 실행할 명령어를 지정하는 Dockerfile 명령어임.
  • docker run으로 컨테이너를 실행하면, 이 ENTRYPOINT에 명시된 명령어가 자동으로 실행됨.
  • 보통 컨테이너의 **"기본 실행 동작"**을 정의할 때 사용함.
🔥
목적 : 컨테이너 하나 띄워서 리눅스 환경에서 잘 돌아가는지 확인하기
FROM openjdk:21-jdk-slim WORKDIR /app COPY ./build/aws-v3-0.0.1.jar ./application.jar RUN chmod +x ./application.jar EXPOSE 8081 ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=dev", "application.jar"]

구성 설명

항목
설명
"java"
Java 실행 명령어
"-jar"
JAR 파일 실행을 의미
"-Dspring.profiles.active=dev"
Spring Boot에서 dev 환경 프로파일을 활성화
"application.jar"
실행할 애플리케이션 JAR 파일 이름

🧠 추가 설명

  • 이 ENTRYPOINT는 컨테이너가 시작되면 바로 아래 명령을 실행하는 것과 같음:
    • java -jar -Dspring.profiles.active=dev application.jar
  • 따라서 이 Docker 이미지를 기반으로 실행한 컨테이너는 곧바로 Spring Boot 애플리케이션을 dev 프로파일로 실행하게 됨.

💡 ENTRYPOINT vs CMD

항목
ENTRYPOINT
CMD
목적
실행 대상 명령을 강제
실행 대상의 기본값 제안
덮어쓰기
docker run 커맨드에 의해 덮어쓰기 어려움
커맨드로 덮어쓰기 쉬움
조합
CMD는 ENTRYPOINT의 인자처럼 동작할 수 있음
독립적 동작
 
Share article

harimmon