• 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
    • 환경 변수를 설정
    • 예시)
      • docker파일내에서 환경 변수 설정

      ENV DB_HOST=localhost ENV DB_USERNAME=root ENV DB_PASSWORD=1234
      • docker 컨테이너 실행시 환경 변수 주입

      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