DockerFile로 Spring이미지를 만들어보자

도커파일 작성하기

DockerFile

# Use an appropriate base image for Java
FROM openjdk:17-jdk-slim

# Set the working directory in the container
WORKDIR /app

# Copy the JAR file from the local machine to the container
COPY build/libs/APIServer-0.0.1-SNAPSHOT.jar app.jar

# Set environment variables
ENV SPRING_DATASOURCE_URL=jdbc:mysql://host.docker.internal:3306/user?serverTimezone=Asia/Seoul
ENV SPRING_DATASOURCE_USERNAME=root
ENV SPRING_DATASOURCE_PASSWORD= 
ENV SPRING_JPA_HIBERNATE_DDL_AUTO=create
ENV SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver
ENV SPRING_JPA_PROPERTIES_HIBERNATE_SHOW_SQL=true
ENV SPRING_JPA_PROPERTIES_HIBERNATE_FORMAT_SQL=true
ENV SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.MySQLDialect

# Expose port 8080 to the outside world
EXPOSE 8080

# Run the JAR file
ENTRYPOINT ["java", "-jar", "app.jar"]
  • 컨테이너를 만들기 위해서는 Dockerfile을 통해서 이미지를 만드는 것을 수행해야 한다. (하지만 그전에 수행해야 할 것은 build/libs 파일에 스냅샷 파일을 우선 만들어야 한다.)

image

도커허브에 올릴 이미지 만들기

docker build -t taewoocode/apiserver:1.0 .
*[main][~/Desktop/Study/APIServer]$ docker ps -a
CONTAINER ID   IMAGE                                 COMMAND                  CREATED              STATUS                          PORTS                                                                                                                                  NAMES
69e8b11fc3f1   taewoocode/apiserver:latest           "java -jar app.jar"      About a minute ago   Exited (1) About a minute ago                                                                                                                                          thirsty_sammet
4a9633ffa1a4   gcr.io/k8s-minikube/kicbase:v0.0.42   "/usr/local/bin/entr…"   22 hours ago         Up 22 hours                     127.0.0.1:50114->22/tcp, 127.0.0.1:50115->2376/tcp, 127.0.0.1:50117->5000/tcp, 127.0.0.1:50118->8443/tcp, 127.0.0.1:50116->32443/tcp   minikube

Reference

https://velog.io/@18k7102dy/Docker-Spring-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-Docker%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%B0%B0%ED%8F%AC%ED%95%B4%EB%B4%85%EC%8B%9C%EB%8B%A4



© 2022. by taewoo

Powered by taewoo