์ํ๋ ๊ฒ๋ณด๋ค ๋ฆ๊ฒํ๋ ๊ฒ์ด ๋ซ๋ค. ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ผ๋ฐ Dockerfile์ ์ง์ํ์ง ์์์ผ๋ก์จ ์ฌ๊ฐํ ์ค์๋ฅผ ์ ์ง๋ฅผ ๋ปํ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
์ฐ๋ฆฌ๋์ ๋ํด ์ด์ผ๊ธฐ ํ ๊ฒ์
๋๋ค
- ์ด๋ฏธ์ง๋ฅผ ์์งํ๊ณ ๊ฒ์ํ๋ฉฐ,
- Kubernetes์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ,
- ํน๋ณ ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ์ง ์๋ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํฉ๋๋ค.
์ด ํ๋ก์ ํธ์ ์ฒ ํ์ DevOps ์์ง๋์ด๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ดํ ์ ์๋๋ก ๋ฎ์ ์์ค์ ๋๊ตฌ๋ฅผ ๋จ์ผ ํตํฉ ์์คํ
์ผ๋ก ์์งํ๋ ๊ฒ์
๋๋ค. ๊ฐ๋ฅํ๋ค๋ฉด ๊ธฐ์กด ์ ํธ๋ฆฌํฐ(์: Helm ๋ฐ Docker)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ด ์๋ค๋ฉด ์ด์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ง๋ค๊ณ ์ง์ํ ์ ์์ต๋๋ค.
๋ฐฐ๊ฒฝ: ๋๋ง์ ์ด๋ฏธ์ง ์์ง๊ธฐ
์ด๋ werf์ ์ด๋ฏธ์ง ์์ง๊ธฐ์์ ๋ฐ์ํ ์ผ์
๋๋ค. ์ผ๋ฐ์ ์ธ Dockerfile๋ก๋ ์ถฉ๋ถํ์ง ์์์ต๋๋ค. ํ๋ก์ ํธ์ ์ด๋ ฅ์ ์ ๊น ์ดํด๋ณด๋ฉด ์ด ๋ฌธ์ ๋ werf์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์์ ์ด๋ฏธ ๋ํ๋ฌ์ต๋๋ค(๊ทธ ์ดํ์๋ ์ฌ์ ํ).
Docker ์ด๋ฏธ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ๋ง๋๋ ๋์ ์ฐ๋ฆฌ๋ Dockerfile์ด ๋ช ๊ฐ์ง ๋งค์ฐ ํน์ ํ ์์ ์ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ ๊ธ๋ฐฉ ๊นจ๋ฌ์์ต๋๋ค.
- ๋ค์ ํ์ค ์ฒด๊ณ์ ๋ฐ๋ผ ์ผ๋ฐ์ ์ธ ์๊ท๋ชจ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํด์ผ ํฉ๋๋ค.
- ์์คํ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ข ์์ฑ์ ์ค์นํ๊ณ ,
- ์ ํ๋ฆฌ์ผ์ด์ ์ข ์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ๋ค์ ์ค์นํ๊ณ ,
- ์์ฐ์ ์์งํ๊ณ ,
- ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด๋ฏธ์ง์ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋๋ค.
- ํ๋ก์ ํธ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ๋น๋๋ ๋ณ๊ฒฝ๋ ํ์ผ์ ํจ์น๋ฅผ ์ ์ฉํ์ฌ ์ ์ํ๊ฒ ์ ๋ ์ด์ด๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
- ํน์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ํด๋น ์ข ์ ๋จ๊ณ๋ฅผ ๋ค์ ๋น๋ํด์ผ ํฉ๋๋ค.
์ค๋๋ ์ฐ๋ฆฌ ์์ง๊ฐ์๊ฒ๋ ๋ค๋ฅธ ๋ง์ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ์ด๊ฒ์ด ์ด๊ธฐ ์๊ตฌ์ด์ ์ถฉ๋์ด์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ ๋ฒ ์๊ฐํ์ง ์๊ณ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ฌด์ฅํ์ต๋๋ค. (์๋ ์ฐธ์กฐ) ๊ตฌํ์ ์์ํ์ต๋๋ค. ์์ ์ DSL! ๋ชฉํ์ ๋ฐ๋ผ ์กฐ๋ฆฝ ํ๋ก์ธ์ค๋ฅผ ๋จ๊ณ๋ณ๋ก ์ค๋ช
ํ๊ณ ํ์ผ์ ๋ํ ์ด๋ฌํ ๋จ๊ณ์ ์ข
์์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋ณด์ํ ์์ ์ ์์ง๊ฐ, ์ด๋ DSL์ ์ต์ข
๋ชฉํ์ธ ์กฐ๋ฆฝ๋ ์ด๋ฏธ์ง๋ก ๋ฐ๊พธ์์ต๋๋ค. ์ฒ์์ DSL์ Ruby์ ์์์ง๋ง
Ruby์ dapp์ ๋ํ ์ด์ ๊ตฌ์ฑ
YAML์ werf์ ๋ํ ํ์ฌ ๊ตฌ์ฑ
์์ง๊ธฐ์ ๋ฉ์ปค๋์ฆ๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ฒ์์๋ ๊ตฌ์ฑ์์ ์ฆ์์์ ์์ Dockerfile์ ์์ฑํ ๋ค์ ์์ ์ปจํ ์ด๋์์ ์ด์ ๋ธ๋ฆฌ ์ง์นจ์ ์คํํ๊ณ ์ปค๋ฐํ๊ธฐ ์์ํ์ต๋๋ค.
NB: ํ์ฌ ์์ฒด ๊ตฌ์ฑ(YAML)์ผ๋ก ์๋ํ๊ณ Stapel ์์ง๊ธฐ๋ผ๊ณ ๋ถ๋ฆฌ๋ ์์ง๊ธฐ๋ ์ด๋ฏธ ์๋นํ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. ์์ธํ ์ค๋ช
์ ๋ณ๋์ ๊ธฐ์ฌ๊ฐ ํ์ํ๋ฉฐ ๊ธฐ๋ณธ ์ธ๋ถ ์ฌํญ์ ๋ค์์์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ฌธ์ ์ ์ธ์
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ํ ๊ฐ์ง ์ค์๋ฅผ ์ ์ง๋ ๋ค๋ ์ฌ์ค์ ์ฆ๊ฐ์ ์ผ๋ก ๊นจ๋ซ์ง๋ ๋ชปํ์ต๋๋ค. ํ์ค Dockerfile์ ํตํด ์ด๋ฏธ์ง ๋น๋ ๋์ผํ ์๋ ํฌ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ ์ธํ๋ผ์ ํตํฉํฉ๋๋ค(์: ์ด๋ฏธ์ง ์์ง, ๋ฐฐํฌ ๋ฐ ์ ๋ฆฌ). Kubernetes์ ๋ฐฐํฌํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ๋ง๋ค๊ณ Dockerfile ์ง์์ ๊ตฌํํ์ง ์๋ ๊ฒ์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํฉ๋๊น? ๋๋ถ๋ถ์ ํ๋ก์ ํธ์์ ์ด๋ฏธ์ง๋ฅผ ์ค๋ช ํ๋ ํ์ค ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?..
์ฐ๋ฆฌ๋ ์ด ์ง๋ฌธ์ ๋ตํ๋ ๋์ ํด๊ฒฐ์ฑ ์ ์ ์ํฉ๋๋ค. Dockerfile(๋๋ Dockerfile ์ธํธ)์ด ์ด๋ฏธ ์๊ณ werf๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
NB: ๊ทธ๋ฐ๋ฐ ์ werf๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋์? ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฝ๋ฉ๋๋ค.
- ์ด๋ฏธ์ง ์ ๋ฆฌ๋ฅผ ํฌํจํ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ ์ฃผ๊ธฐ;
- ๋จ์ผ ๊ตฌ์ฑ์์ ํ ๋ฒ์ ์ฌ๋ฌ ์ด๋ฏธ์ง์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ
- Helm ํธํ ์ฐจํธ์ ๋ฐฐํฌ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
๋ ์์ ํ ๋ชฉ๋ก์ ๋ค์์์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ด์ ์ ๊ตฌ์ฑ์์ Dockerfile์ ๋ค์ ์์ฑํ๊ฒ ๋ค๊ณ ์ ์ํ๋ค๋ฉด ์ด์ ๋ "Werf๊ฐ Dockerfile์ ๋น๋ํ๋๋ก ํ์ธ์!"๋ผ๊ณ ๊ธฐ์๊ฒ ๋งํ ๊ฒ์ ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ์?
์ด ๊ธฐ๋ฅ์ ์ ์ฒด ๊ตฌํ์ ๋ฆด๋ฆฌ์ค์ ๋ํ๋ฌ์ต๋๋ค. werf build
...๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ ์ ๋ถ์
๋๋ค. werf๊ฐ ์ด๋ฏธ์ง๋ฅผ ์กฐ๋ฆฝํ ๊ฒ์
๋๋ค. ์ถ์์ ์ธ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ค์์ ๋ฐํํ์ Dockerfile
ํ๋ก์ ํธ ๋ฃจํธ์์:
FROM ubuntu:18.04
RUN echo Building ...
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ฐํํ ๊ฒ์ด๋ค werf.yaml
์ด๊ฒ์ ์ฌ์ฉํ๋ Dockerfile
:
configVersion: 1
project: dockerfile-example
---
image: ~
dockerfile: ./Dockerfile
๋ชจ๋! ์ผ์ชฝ ๋ฌ๋ฆฌ๋ค werf build
:
๋ํ ๋ค์์ ์ ์ธํ ์ ์์ต๋๋ค. werf.yaml
ํ ๋ฒ์ ์ฌ๋ฌ Dockerfile์์ ์ฌ๋ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ฉด ๋ค์์ ์ํํ์ธ์.
configVersion: 1
project: dockerfile-example
---
image: backend
dockerfile: ./dockerfiles/Dockerfile-backend
---
image: frontend
dockerfile: ./dockerfiles/Dockerfile-frontend
๋ง์ง๋ง์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ ๋น๋ ๋งค๊ฐ๋ณ์ ์ ๋ฌ๋ ์ง์ํฉ๋๋ค. --build-arg
ะธ --add-host
- werf ๊ตฌ์ฑ์ ํตํด. Dockerfile ์ด๋ฏธ์ง ๊ตฌ์ฑ์ ๋ํ ์ ์ฒด ์ค๋ช
์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ป๊ฒ ์๋ํฉ๋๊น?
๋น๋ ํ๋ก์ธ์ค ์ค์ Docker์์ ๋ก์ปฌ ๋ ์ด์ด์ ํ์ค ์บ์๊ฐ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ํ ๊ฒ์ werf๋ Dockerfile ๊ตฌ์ฑ์ ์ธํ๋ผ์ ํตํฉํฉ๋๋ค.. ์ด๊ฒ์ ๋ฌด์์ ์๋ฏธ ํ๋๊ฐ?
- Dockerfile์์ ๋น๋๋ ๊ฐ ์ด๋ฏธ์ง๋
dockerfile
(werf์ ์ด๋ค ๋จ๊ณ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.์ฌ๊ธฐ์ ). - ๋ฌด๋์ฉ
dockerfile
werf๋ Dockerfile ๊ตฌ์ฑ์ ๋ด์ฉ์ ๋ฐ๋ผ ์๋ช ์ ๊ณ์ฐํฉ๋๋ค. Dockerfile ๊ตฌ์ฑ์ด ๋ณ๊ฒฝ๋๋ฉด ๋จ๊ณ ์๋ช ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.dockerfile
Werf๋ ์๋ก์ด Dockerfile ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ์ด ๋จ๊ณ์ ์ฌ๊ตฌ์ถ์ ์์ํฉ๋๋ค. ์๋ช ์ด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด werf๋ ์บ์์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค. (werf์์ ์๋ช ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์์ด ๋ณด๊ณ ์ ). - ๋ค์์ผ๋ก ์์ง๋ ์ด๋ฏธ์ง๋ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ์ ์์ต๋๋ค.
werf publish
(๋๋werf build-and-publish
) ์ด๋ฅผ Kubernetes ๋ฐฐํฌ์ ์ฌ์ฉํฉ๋๋ค. Docker ๋ ์ง์คํธ๋ฆฌ์ ๊ฒ์๋ ์ด๋ฏธ์ง๋ ํ์ค werf ์ ๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฆฌ๋ฉ๋๋ค. ์ด์ ์ด๋ฏธ์ง(N์ผ ์ด์), ์กด์ฌํ์ง ์๋ Git ๋ถ๊ธฐ์ ์ฐ๊ฒฐ๋ ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์ ์ฑ ์ ์๋์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ์ค๋ช ๋ ์ฌํญ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค๋ช ์์์ ํ์ธํ ์ ์์ต๋๋ค.
์ฃผ์ ์ฌํญ
1. ADD์์๋ ์ธ๋ถ URL์ ์ง์ํ์ง ์์ต๋๋ค.
ํ์ฌ ์ง์๋ฌธ์์ ์ธ๋ถ URL์ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์๋์ง ์์ต๋๋ค. ADD
. Werf๋ ์ง์ ๋ URL์ ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ฌ๊ตฌ์ถ์ ์์ํ์ง ์์ต๋๋ค. ๊ณง ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ณํ์
๋๋ค.
2. ์ด๋ฏธ์ง์ .git์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋๋ ํ ๋ฆฌ ์ถ๊ฐ .git
์ด๋ฏธ์ง์์ - ์
์์ ์ธ ๋์ ์ต๊ด์ด๋ฉฐ ๊ทธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฉด
.git
์ต์ข ์ด๋ฏธ์ง์ ๋จ์ ์์ผ๋ฉด ์์น์ ์๋ฐฐ๋ฉ๋๋ค.12ํฉํฐ ์ฑ : ์ต์ข ์ด๋ฏธ์ง๋ ๋จ์ผ ์ปค๋ฐ์ ์ฐ๊ฒฐ๋์ด์ผ ํ๋ฏ๋ก ๋ถ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.git checkout
์์ ์ปค๋ฐ. -
.git
์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํฉ๋๋ค(๋ํ ํ์ผ์ด ํ ๋ฒ ์ถ๊ฐ๋ ํ ์ญ์ ๋์๊ธฐ ๋๋ฌธ์ ์ ์ฅ์๊ฐ ์ปค์ง ์ ์์). ํน์ ์ปค๋ฐ๊ณผ ๊ด๋ จ๋ ์์ ํธ๋ฆฌ์ ํฌ๊ธฐ๋ Git์ ์์ ๊ธฐ๋ก์ ์์กดํ์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ถ๊ฐ ๋ฐ ํ์ ์ ๊ฑฐ.git
์ต์ข ์ด๋ฏธ์ง์์๋ ์๋ํ์ง ์์ต๋๋ค. ์ด๋ฏธ์ง๋ ์ฌ์ ํ ์ถ๊ฐ ๋ ์ด์ด๋ฅผ ํ๋ํฉ๋๋ค. ์ด๊ฒ์ด Docker๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋๋ค. - Docker๋ ๋์ผํ ์ปค๋ฐ์ด ๋น๋๋๋๋ผ๋ ๋ค๋ฅธ ์์
ํธ๋ฆฌ์์ ๋ถํ์ํ ์ฌ๊ตฌ์ถ์ ์์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด GitLab์ ๋ค์ ์์น์ ๋ณ๋์ ๋ณต์ ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
/home/gitlab-runner/builds/HASH/[0-N]/yourproject
๋ณ๋ ฌ ์กฐ๋ฆฝ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ. ์ถ๊ฐ ์ฌ์กฐ๋ฆฝ์ ๋๋ ํ ๋ฆฌ๊ฐ.git
๋์ผํ ์ปค๋ฐ์ด ๋น๋๋๋๋ผ๋ ๋์ผํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณต์ ๋ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋ง์ง๋ง ์์ ์ werf๋ฅผ ์ฌ์ฉํ ๋์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. Werf์์๋ ์ผ๋ถ ๋ช
๋ น์ ์คํํ ๋ ๋น๋๋ ์บ์๊ฐ ์์ด์ผ ํฉ๋๋ค(์: werf deploy
). ์ด๋ฌํ ๋ช
๋ น์ด ์คํ๋๋ฉด werf๋ ๋ค์์ ์ง์ ๋ ์ด๋ฏธ์ง์ ๋ํ ์คํ
์ด์ง ์๋ช
์ ๊ณ์ฐํฉ๋๋ค. werf.yaml
, ์ด์
๋ธ๋ฆฌ ์บ์์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ช
๋ น์ด ๊ณ์ ์๋ํ ์ ์์ต๋๋ค. ๋ฌด๋ ์๊ทธ๋์ฒ๊ฐ ๋ด์ฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ .git
, ๊ทธ๋ฌ๋ฉด ๊ด๋ จ ์๋ ํ์ผ์ ๋ณ๊ฒฝ์ ๋ถ์์ ํ ์บ์๋ฅผ ์ป๊ฒ ๋๋ฉฐ werf๋ ์ด๋ฌํ ์ค์๋ฅผ ์ฉ์ํ ์ ์์ต๋๋ค(์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์).
์ผ๋ฐ์ ์ผ๋ก, ํน์ ํ์ ํ์ผ๋ง ์ถ๊ฐ ์ง์์ฌํญ์ ํตํด ADD
์ด์จ๋ ์๋ฉด์ ํจ์จ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ํฅ์๋ฉ๋๋ค. Dockerfile
, ๋ํ ์ด๋ฅผ ์ํด ์์ง๋ ์บ์์ ์์ ์ฑ์ ํฅ์์ํต๋๋ค. Dockerfile
, Git์ ๊ด๋ จ์๋ ๋ณ๊ฒฝ ์ฌํญ.
ํฉ๊ณ
ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ์์ฒด ๋น๋๋ฅผ ์์ฑํ๋ ์ด๊ธฐ ๊ฒฝ๋ก๋ ์ด๋ ต๊ณ ์ ์งํ๋ฉฐ ๊ฐ๋จํ์ต๋๋ค. ํ์ค Dockerfile ์์ ๋ชฉ๋ฐ์ ์ฌ์ฉํ๋ ๋์ ์ฌ์ฉ์ ์ ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ์๋ฃจ์ ์ ์์ฑํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ์ฅ์ ์ด ์์ต๋๋ค. Stapel ์์ง๊ฐ๋ ์์ ์ ์๋ฒฝํ๊ฒ ๋์ฒํฉ๋๋ค.
๊ทธ๋ฌ๋ ์์ฒด ๋น๋๋ฅผ ์์ฑํ๋ ๊ณผ์ ์์ ๊ธฐ์กด Dockerfile์ ๋ํ ์ง์์ ๋์ณค์ต๋๋ค. ์ด ๊ฒฐํจ์ ์ด์ ์์ ๋์์ผ๋ฉฐ ์์ผ๋ก ๋ถ์ฐ ์ด์ ๋ธ๋ฆฌ ๋ฐ Kubernetes๋ฅผ ์ฌ์ฉํ ์ด์ ๋ธ๋ฆฌ(์ฆ, kaniko์์ ์ํ๋๋ ๊ฒ์ฒ๋ผ Kubernetes ๋ด๋ถ ๋ฌ๋์์ ์ด์ ๋ธ๋ฆฌ)๋ฅผ ์ํ ๋ง์ถคํ Stapel ๋น๋์ ํจ๊ป Dockerfile ์ง์์ ๊ฐ๋ฐํ ๊ณํ์ ๋๋ค.
๋ฐ๋ผ์ ๊ฐ์๊ธฐ ๋ ๊ฐ์ Dockerfile์ด ์ฃผ๋ณ์ ๋์ฌ ์๋ค๋ฉด... ์๋ํ๋ค
PS ์ฃผ์ ์ ๊ดํ ๋ฌธ์ ๋ชฉ๋ก
-
๋น ๋ฅธ ์์์ ์ํ ๊ฐ์ด๋ ; -
dockerfile ๋น๋ ๊ตฌ์ฑ ; -
werf์ ์คํ ์ด์ง ์ฅ์น ; -
์ด๋ฏธ์ง ๊ฒ์ ํ๋ก์ธ์ค ; -
Kubernetes ๋ฐฐํฌ ํ๋ก์ธ์ค์ ํตํฉ ; -
์ฒญ์ ๊ณผ์ ; -
Dockerfile์ ๋์์ธ Stapel ๋น๋ .
์ฐ๋ฆฌ ๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์: โ
์ถ์ฒ : habr.com