Dockerfile

2020. 10. 4. 01:56클라우드/Docker

스프링부트로 TodoList 만든 자바 앱을 도커에 띄우기 위해 Dockerfile을 만들었다.

# Start with a base image containing Java runtime
FROM adoptopenjdk/openjdk11:alpine

# Add Author info
LABEL maintainer="narae456@gmail.com"

# Add a volume to /tmp
VOLUME /tmp

# Make port 8080 available to the world outside this container
EXPOSE 8080

# The application's jar file
ARG JAR_FILE=build/libs/todo-0.0.1-SNAPSHOT.jar

# Add the application's jar to the container
ADD ${JAR_FILE} to-do-springboot.jar

# Run the jar file
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/to-do-springboot.jar"]

 

FROM adoptopenjdk/openjdk11:alpine

FROM

생성할 이미지

이 앱이 openjdk11 이미지를 기반으로 실행된다는 뜻

 

LABEL maintainer="narae456@gmail.com"

LABEL

이미지의 메타데이터. 버전 정보, 작성자, 코멘트 등을 key-value 형태로 작성

maintainer를 추가해서 관리자가 누구인지 명시함

 

VOLUME /tmp

VOLUME

volume 디렉터리 위치 설정

/tmp 밑에 컨테이너가 필요한 여러가지 데이터를 저장하겠다는 뜻

 

EXPOSE 8080

EXPOSE

Dockerfile 빌드로 생성된 이미지에서 열어줄 포트

 

ARG JAR_FILE=build/libs/todo-0.0.1-SNAPSHOT.jar

ARG

build 시점에만 사용되는 변수

gradle build 후 생긴 .jar 파일의 상대경로를 JAR_FILE에 담아둠

 

ADD ${JAR_FILE} to-do-springboot.jar

ADD

파일을 추가함. 파일 위치는 Dockerfile이 위치한 디렉토리를 기준으로 함

앞에서 지정한 JAR_FILEto-do-springboot.jar라는 이름으로 가져와서 추가했음

 

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/to-do-springboot.jar"]

ENTRYPOINT

컨테이너가 시작될 때 실행될 명령어. 실제 명령어를 띄어쓰기 기준으로 잘라서 리스트로 만들면 됨

만들어둔 자바 앱을 실행시키는 명령어를 넣었음

 

 


Reference

 

 

'클라우드 > Docker' 카테고리의 다른 글

Docker Compose  (0) 2020.10.17
Dockerizing Spring Boot Application  (0) 2020.10.04
hello world  (0) 2020.10.04
Docker Image  (0) 2020.10.01
Docker Container  (0) 2020.10.01