์ด์ gradle Tasks ์์ bootJar ๋๋ธํด๋ฆญ์ ํตํด ์๋ก์ด jar ํ์ผ์ ๋ง๋ค์ด ์ค๋ค. ์ด ํ์ผ์ docker ๋ก ์ฌ๋ฆฌ๊ณ tar ํ์ผ๋ก ์ ์ฅํด์ ์ด์์๋ฒ์ ์ฌ๋ฆฌ๋ ์์ ๊น์ง ํด๋ณด์.
jar ํ์ผ์ด ์์ฑ๋ build/libs ํด๋์ Dockerfile ์ ์์ฑ
openjdk 17 ๋ฒ์ ๊ณผ jar ํ์ผ์ app.jar ํ์ผ๋ก ๋ณํ, 9201 ํฌํธ๋ฅผ EXPOSE ํด์ฃผ๋ ๋ด์ฉ์ผ๋ก ์์ฑ
FROM openjdk:17
ARG JAR_FILE=*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 9201
ENTRYPOINT ["java","-jar","app.jar"]
ํด๋น ํด๋ ๊ฒฝ๋ก์ ํฐ๋ฏธ๋์ ์ด์ด docker build ๋ช ๋ น์ด๋ก ๋์ปค์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ ค์ฃผ๊ธฐ
docker build -t {image_name} ./
docker build -t {name} ./ ๋ช ๋ น์ด์์ ./๋ Dockerfile์ด ์๋ ํ์ฌ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋
๋น๋ ๊ณผ์ ์ ๊ฑฐ์ณ ์ ์์ ์ผ๋ก docker desktop ์ ์ด๋ฏธ์ง๊ฐ ๋ง๋ค์ด์ก๋ค.
name:tag โ docker-practice:latest
์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ docker-practice.tar ํ์ผ๋ก ์ ์ฅํ์ฌ ์ด์์๋ฒ๋ก ๋ณต์ฌํ ๋ค ๋ค์ load ํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค
#{image_name}.tar๋ก ์ด๋ฏธ์ง ์ ์ฅ
$ docker save -o ~/๊ฒฝ๋ก/{image_name}.tar {image_name}:latest
# ์์
$ docker save -o ~/Desktop/projects/docker-practice/{image_name}.tar {image_name}:latest
$ docker save -o ~/Desktop/projects/docker-practice/docker-practice.tar docker-practice:latest
#{image_name} ์ด๋ฏธ์ง ๋ก๋
$ docker load -i ~/๊ฒฝ๋ก/{image_name}.tar
# ์์
$ docker load -i ~/Desktop/projects/docker-practice/{image_name}.tar
$ docker load -i ~/Desktop/projects/docker-practice/docker-practice.tar