목적 : 컨테이너 하나 띄워서 리눅스 환경에서 잘 돌아가는지 확인하기
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