Dockerfile
[Docker] Dockerfile
| Write | contect | Date |
|---|---|---|
| ๊นํํธ | lhyun058@gmail.com | 2022.08.14 |
๐์ ๋ฆฌ
Docker๋ฅผ ์ด์ฉํด
jarํ์ผ์ ๋ฐฐํฌํ๋ฉด์ ํ๋ก์ ํธ์ ํ๊ฒฝ๋ณ์ ์ค์ ์ ํ๋ ๋ถ๋ถ์ด ์์ดDockerfile์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ถ๊ฐํ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์ ์ถ๊ฐ๋ฅผ ์ํดDockerfile์ ๋ํ ์กฐ์ฌ๋ฅผ ํ๋ฉด์ ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค.
1.Dockerfile ์๊ฐ
Dockerfile์ DockerImage๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ค์ ํ์ผ์
๋๋ค.
(Dockerfile์ ๋น๋ํ๋ฉด Docker Image๋ฅผ ์์ฑํด์ค๋ค)
Dockerfile์ ์ฅ์ ์ ์ด๋ฏธ์ง๊ฐ ์ด๋ป๊ฒ ๋ง๋ค์ด์ก๋์ง๋ฅผ ๊ธฐ๋กํ๋ฉฐ, ๋ฐฐํฌ์ด ์ฉ์ดํ๊ณ ์ปจํ
์ด๋๊ฐ ํน์ ํ๋์ ์ํํ ์ ์๋๋ก ํด์ค๋๋ค.
2. Dockerfile ๊ตฌ์ฑ
FROM openjdk:11-jdk
EXPOSE 80
ARG JAR_FILE=target/*.jar
ADD ${JAR_FILE} api.jar
ENV JASYPT_SECRET="value"
WORKDIR /home/api
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/api.jar"]
- FROM - Base ์ด๋ฏธ์ง
FROM <์ด๋ฏธ์ง>
- EXPOSE - ์์ฑ๋ ์ด๋ฏธ์ง์์ ์ด์ด์ค ํฌํธ๋ฒํธ
EXPOSE <ํฌํธ๋ฒํธ>- ์ปจํ
์ด๋ ์์ฑ์
-p์ต์ ์ ์ปจํ ์ด๋ ํฌํธ ๊ฐ์ผ๋ก EXPOSE์ ์์ฑํ ๊ฐ์ ์ ์ด์ผ ํ๋ค.
- ADD - build ๋ช ๋ น ์ค๊ฐ์ ํธ์คํธ์ ํ์ผ ๋๋ ํด๋๋ฅผ ์ด๋ฏธ์ง์ ๊ฐ์ ธ์จ๋ค
- ARG - docker build๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ ์ ์ต์
์ ํตํด ๋๊ธธ ์ ์๋ ์ธ์๋ฅผ ์ ์
ARG <์ด๋ฆ>
- ENV - ์ด๋ฏธ์ง์์ ์ฌ์ฉํ ํ๊ฒฝ ๋ณ์ ๊ฐ์ ์ ์ฅ
ENV <KEY> <VALUE>
- WORKDIR - ์ปจํ
์ด๋ ์์์ ์์
๋๋ ํ ๋ฆฌ๋ฅผ ์ง์
WORKDIR <์ด๋ํ ๊ฒฝ๋ก>- ํด๋น ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ์๋ก ์์ฑ
-
RUN,CMD,ENTRYPOINT,COPY,ADD๋ช ๋ น๋ฌธ์ ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฑํ
- ENTRYPOINT -
docker run์คํ ์ ํญ์ ์คํ๋์ผ ํ๋ ์ปค๋งจ๋๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉENTRYPOINT ["์ปค๋งจ๋","ํ๋ผ๋ฏธํฐ1","ํ๋ผ๋ฏธํฐ2"]- Docker Image๋ฅผ ํ๋์ ์คํ ํ์ผ์ฒ๋ผ ์ฌ์ฉ