Dockerfile ์์ฑ ์ ์ฌ์ฉ๋๋ keyword ์ค, command ์คํ๊ณผ ๊ด๋ จ๋ keyword ๋ 3๊ฐ์ง๊ฐ ์๋ค.
๊ฐ๊ฐ์ ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ keyword ๋ฅผ Dockerfile ์ ์์ฑํด์ผ ํ๋ค.
- RUN
- ENTRYPOINT
- CMD
https://docs.docker.com/engine/reference/builder/#run
https://docs.docker.com/engine/reference/builder/#entrypoint
https://docs.docker.com/engine/reference/builder/#cmd
https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact
RUN
- ์คํ ์์ : Image build
- Dockerfile ๋ฅผ ํตํ ์ต์ด Image build ๊ณผ์ ์ ์คํ์ด ํ์ํ command ๋ฅผ RUN ์ ์์ฑํ๋ค.
- ์ฃผ๋ก library, package ๋ฑ์ ์ค์น๋ฅผ ์ํด ์ฌ์ฉ๋๋ค.
RUN /bin/bash -c 'source $HOME/.bashrc && echo $HOME' # or RUN npm ci --omit=dev
ENTRYPOINT
- ์คํ ์์ : Container run
- ๋ค์ ์ค๋ช ํ CMD ์ ์ ์ฌํ์ง๋ง, Container ๊ฐ ์คํ๋ ๋ ํญ์ ์คํ๋์ด์ผ ํ๋ command ๋ฅผ ENTRYPOINT ์ ์์ฑํ๋ค.
- ์ฃผ๋ก node.js application ๋ฑ์ ๊ฐ๋ฐ ์, Server ์คํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ํ์ํ parameter ๋ฅผ CMD ํน์ user input ์ ํตํด ์ ๋ฌํ ์ ์๋ค.
ENTRYPOINT ["executable", "param1", "param2"] # or ENTRYPOINT [ "node", "server.js" ]
CMD
- ์คํ ์์ : Container run
- ENTRYPOINT ์ ์ ์ฌํ์ง๋ง, ์ง์ ๋ user input ๊ฐ ์์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋ command or parameter ๋ฅผ CMD ์ ์์ฑํ๋ค.
- ์ฃผ๋ก ENTRYPOINT ์ ๋ํ parameter ๋ ์ง์ ๋ options ์ด ์์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํํ file ์ ์ง์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- user input ์ ํตํด CMD ์ ๊ฐ์ ๋ฎ์ด ์ธ ์ ์๋ค.
CMD ["/usr/bin/wc","--help"] # or ENTRYPOINT [ "node", "server.js" ] CMD ["NODE_ENV=production"]
$ docker run // ... // "NODE_ENV=dev"
ENTRYPOINT vs CMD
- ์ต์ข
์ ์ผ๋ก ENTRYPOINT ์ CMD ๋ ๋ค์์ ๊ฐ์ด ์คํ๋๋ ํํ์ด๋ค.
$ [ENTRYPOINT] [CMD]
- ENTRYPOINT ๋ Container ์คํ ์ ํญ์ ์คํ๋๊ธฐ ๋๋ฌธ์, default run command ์ง์ ์ ์ฌ์ฉํ๋ค.
- CMD ๋ user input value ๊ฐ parameter ๋ก์จ ์ฐ์ ์์๋ฅผ ๊ฐ๊ฒ ๋๋ฉฐ, input value ๊ฐ ์์ ๊ฒฝ์ฐ ์ ์๋ ๊ธฐ๋ณธ ๊ฐ์ด ์ ์ฉ๋๋ค.
- ์ํฉ์ ๋ฐ๋ผ ๊ฐ์ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
'๐ง๐ปโ๐ป Develop > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Docker Detach vs Attach mode (Background vs Foreground) (0) | 2023.05.08 |
---|
๋๊ธ