- FROM
- 이미지 빌드의 기반이 되는 베이스 이미지를 지정
- ex)FROM openjdk:17-jdk-alpine
- WORKDIR
- 명령어를 실행할 디렉토리를 설정
- WORKDIR /app
- COPY
- 파일이나 디렉토리를 로컬 파일시스템에서 이미지로 복사
- COPY . /app
- RUN
- 이미지 빌드 중에 명령어를 실행
- 주로 패키지 설치나 빌드 과정에 사용
- RUN javac HelloWorld.java
- CMD
- 컨테이너가 시작될 때 실행할 명령어를 제공
- Dockerfile에서 한 번만 사용 가능
- CMD ["java", "HelloWorld"]
- ENTRYPOINT명령어로도 사용가능
- ENTRYPOINT ["java", "-jar", "myapp.jar"]
- ENV
- 환경 변수를 설정
- 예시)
ENV DB_HOST=localhost
ENV DB_USERNAME=root
ENV DB_PASSWORD=1234
docker run -e DB_HOST=dbserver -e DB_USERNAME=root -e DB_PASSWORD=1234 -p 8080:8080 my-spring-boot-app
- EXPOSE
- 컨테이너가 리스닝할 포트를 문서화하는 목적. 실제 port동작과는 무관
- EXPOSE 8080