ํ๋์ Git ์ ์ฅ์์์ ๋ง์ดํฌ๋ก์๋น์ค ์ธํธ ๋กค์์
์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ ๋ ๋ฆฝ์ ์ธ ์๋น์ค๋ก ๋ถํ ๋๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์๋น์ค์ ๋ฆด๋ฆฌ์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค. ํ ๋ฒ์ ํ๋ ์ด์์ ์๋น์ค๊ฐ ๋ฆด๋ฆฌ์ค๋ ์ ์์ผ๋ฉฐ ๋๋จธ์ง ์๋น์ค๋ ๋ณ๊ฒฝ ์์ด ๊ณ์ ์๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฝ๋ ์ ์ฅ ๋ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ์ ๊ด์ ์์ ๋ณด๋ฉด ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค๋ฅผ ๋จ์ผ ์ ์ฅ์์ ๋ณด๊ดํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํฉ๋๋ค.
์๋น์ค๊ฐ ์ง์ ์ผ๋ก ๋ ๋ฆฝ์ ์ด๊ณ ๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฐ๊ฒฐ๋์ง ์๋ ์ํฉ์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ณ๋์ ํ๋ก์ ํธ์ ์์นํ๊ฒ ๋๋ฉฐ, ๋ฆด๋ฆฌ์ค๋ ๊ฐ ํ๋ก์ ํธ์์ ๋ณ๋์ CI/CD ํ๋ก์ธ์ค๋ฅผ ํตํด ์ํ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ค์ ๋ก ๊ฐ๋ฐ์๋ ๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ถํ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง ๊ฐ๊ฐ์ ๋ํด ๋ณ๋์ ์ ์ฅ์์ ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ถ๋ช ๊ณผ์์ ๋๋ค. ๋ ์์ธํ ๋ ผ์ํ ์ํฉ์ ๋ฐ๋ก ์ด ์ํฉ์ ๋๋ค. ์ด๋ฌํ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ ๋จ์ผ ํ๋ก์ ํธ ์ ์ฅ์์ ์์นํ๋ฉฐ ๋ฆด๋ฆฌ์ค๋ CI/CD์ ๋จ์ผ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฐ์ํฉ๋๋ค.
Git ๋ธ๋์น ๋ฐ Git ํ๊ทธ๋ก ํ๊ทธ ์ง์
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ๊ทธ ์ง์ ์ ๋ต์ด ์ฌ์ฉ๋๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ํ๊ทธ ๋๋ ๋ถ๊ธฐ. Git ๋ธ๋์น์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง์๋ ๋ธ๋์น ์ด๋ฆ์ผ๋ก ํ๊ทธ๊ฐ ์ง์ ๋ฉ๋๋ค. ํ ๋ฒ์ ํ๋์ ๋ธ๋์น์๋ ํด๋น ๋ธ๋์น ์ด๋ฆ์ผ๋ก ๊ฒ์๋ ์ด๋ฏธ์ง๊ฐ ํ๋๋ง ์์ต๋๋ค. Git ํ๊ทธ์ ๊ฒฝ์ฐ ํ๊ทธ ์ด๋ฆ์ ๋ฐ๋ผ ์ด๋ฏธ์ง์ ํ๊ทธ๊ฐ ์ง์ ๋ฉ๋๋ค.
์ ๋ฒ์ ์ด ์ถ์๋๋ ๋ฑ ์ Git ํ๊ทธ๊ฐ ์์ฑ๋๋ฉด Docker ๋ ์ง์คํธ๋ฆฌ์ ๋ชจ๋ ํ๋ก์ ํธ ์ด๋ฏธ์ง์ ๋ํด ์ Docker ํ๊ทธ๊ฐ ์์ฑ๋ฉ๋๋ค.
-
myregistry.org/myproject/frontend:v1.1.10
-
myregistry.org/myproject/myservice1:v1.1.10
-
myregistry.org/myproject/myservice2:v1.1.10
-
myregistry.org/myproject/myservice3:v1.1.10
-
myregistry.org/myproject/myservice4:v1.1.10
-
myregistry.org/myproject/myservice5:v1.1.10
-
myregistry.org/myproject/database:v1.1.10
์ด๋ฌํ ์ ์ด๋ฏธ์ง ์ด๋ฆ์ Helm ํ
ํ๋ฆฟ์ ํตํด Kubernetes ๊ตฌ์ฑ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ๋ช
๋ น์ผ๋ก ๋ฐฐํฌ๋ฅผ ์์ํ ๋ werf deploy
ํ๋๋ฅผ ์
๋ฐ์ดํธํ๋ ์ค์
๋๋ค. image
Kubernetes ๋ฆฌ์์ค ๋งค๋ํ์คํธ์์ ๋ณ๊ฒฝ๋ ์ด๋ฏธ์ง ์ด๋ฆ์ผ๋ก ์ธํด ํด๋น ๋ฆฌ์์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
๋ฌธ์ : ์ค์ ๋ก ์ด์ ๋กค์์(Git ํ๊ทธ) ์ดํ ์ด๋ฏธ์ง์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์ง ์๊ณ Docker ํ๊ทธ๋ง ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๋ค. ์ด์ํ ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ํ๋ฉด ๊ฐ๋ ์ค์ง ์๊ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ์ฌ์์์ ์ํํ ์ค์ ์ด์ ๋ ์์์ง๋ง.
๊ฒฐ๊ณผ์ ์ผ๋ก, ํ์ฌ ํ๊ทธ ์ง์ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ๊ฐ๋ณ Git ์ ์ฅ์๋ฅผ ๋ณดํธํด์ผ ํ๋ฉฐ ์ด๋ฌํ ์ฌ๋ฌ ์ ์ฅ์์ ๋กค์์์ ๊ตฌ์ฑํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๊ณํ์ ๊ณผ๋ถํ๋๊ณ ๋ณต์กํฉ๋๋ค. ๋ถํ์ํ ์ฌ์์์ด ๋ฐ์ํ์ง ์๋๋ก ๋ง์ ์๋น์ค๋ฅผ ๋จ์ผ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๊ฒฐํฉํ๊ณ Docker ํ๊ทธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Git ์ปค๋ฐ์ผ๋ก ํ๊ทธ ์ง์
werf์๋ Git ์ปค๋ฐ๊ณผ ๊ด๋ จ๋ ํ๊ทธ ์ง์ ์ ๋ต๋ ์์ต๋๋ค.
Git-commit์ Git ์ ์ฅ์์ ์ฝํ ์ธ ์ ๋ํ ์๋ณ์์ด๋ฉฐ Git ์ ์ฅ์์ ํ์ผ ํธ์ง ๊ธฐ๋ก์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฏ๋ก Docker ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ ๋ฐ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ผ๋ฆฌ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ Git ์ปค๋ฐ์ผ๋ก ํ๊ทธ๋ฅผ ์ง์ ํ๋ ๊ฒ์ Git ๋ธ๋์น๋ Git ํ๊ทธ๋ก ํ๊ทธ๋ฅผ ์ง์ ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋จ์ ์ด ์์ต๋๋ค.
- ํ์ผ์ ๋ณ๊ฒฝํ์ง ์๋ ๋น ์ปค๋ฐ์ ์์ฑํ ์ ์์ง๋ง ์ด๋ฏธ์ง์ Docker ํ๊ทธ๋ ๋ณ๊ฒฝ๋ฉ๋๋ค.
- ํ์ผ์ ๋ณ๊ฒฝํ์ง ์๋ ๋ณํฉ ์ปค๋ฐ์ ์์ฑํ ์ ์์ง๋ง ์ด๋ฏธ์ง์ Docker ํ๊ทธ๋ ๋ณ๊ฒฝ๋ฉ๋๋ค.
- ์ด๋ฏธ์ง๋ก ๊ฐ์ ธ์ค์ง ์์ Git์ ํ์ผ์ ๋ณ๊ฒฝํ๋ ์ปค๋ฐ์ด ์ด๋ฃจ์ด์ง ์ ์์ผ๋ฉฐ ์ด๋ฏธ์ง์ Docker ํ๊ทธ๊ฐ ๋ค์ ๋ณ๊ฒฝ๋ฉ๋๋ค.
ํ๊ทธ ์ง์ Git ๋ถ๊ธฐ ์ด๋ฆ์ ์ด๋ฏธ์ง ๋ฒ์ ์ด ๋ฐ์๋์ง ์์ต๋๋ค.
Git ๋ธ๋์น์ ํ๊ทธ ์ง์ ์ ๋ต๊ณผ ๊ด๋ จ๋ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํด๋น ๋ธ๋์น์ ์ปค๋ฐ์ด ์๊ฐ์์ผ๋ก ์์ฐจ์ ์ผ๋ก ์์ง๋๋ ํ ๋ธ๋์น ์ด๋ฆ๋ณ ํ๊ทธ ์ง์ ์ด ์๋ํฉ๋๋ค.
ํ์ฌ ์ฒด๊ณ์์ ์ฌ์ฉ์๊ฐ ํน์ ๋ถ๊ธฐ์ ๊ด๋ จ๋ ์ด์ ์ปค๋ฐ์ ๋ค์ ๋น๋ํ๊ธฐ ์์ํ๋ฉด werf๋ ํด๋น Docker ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ์ปค๋ฐ์ ๋ํด ์๋ก ๋น๋๋ ์ด๋ฏธ์ง ๋ฒ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ค์ ์์ฑํฉ๋๋ค. ์ด์ ๋ถํฐ ์ด ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐํฌ์์๋ ํฌ๋๋ฅผ ๋ค์ ์์ํ ๋ ๋ค๋ฅธ ๋ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ํ์ด ์์ผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ด CI ์์คํ ๊ณผ์ ์ฐ๊ฒฐ์ด ๋์ด์ง๊ณ ๋๊ธฐํ๊ฐ ํด์ ๋ฉ๋๋ค.
๋ํ ์งง์ ์๊ฐ ๊ฐ๊ฒฉ์ ๋๊ณ ํ๋์ ๋ธ๋์น์ ์ฐ์์ ์ผ๋ก ํธ์ํ๋ฉด ์ด์ ์ปค๋ฐ์ด ์ ์ปค๋ฐ๋ณด๋ค ๋ฆ๊ฒ ์ปดํ์ผ๋ ์ ์์ต๋๋ค. ์ด์ ๋ฒ์ ์ ์ด๋ฏธ์ง๋ Git ๋ธ๋์น ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฒ์ ์ ๋ฎ์ด์๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ CI/CD ์์คํ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค(์๋ฅผ ๋ค์ด GitLab CI์์๋ ํ์์ ํ์ดํ๋ผ์ธ์ด ์ผ๋ จ์ ์ปค๋ฐ์ ์ํด ์์๋ฉ๋๋ค). ๊ทธ๋ฌ๋ ๋ชจ๋ ์์คํ ์ด ์ด๋ฅผ ์ง์ํ๋ ๊ฒ์ ์๋๋ฉฐ ์ด๋ฌํ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ ๋ณด๋ค ์์ ์ ์ธ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
์ฝํ ์ธ ๊ธฐ๋ฐ ํ๊ทธ๋ ๋ฌด์์ ๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ฝํ ์ธ ๊ธฐ๋ฐ ํ๊ทธ๋ ๋ฌด์์ ๋๊น? ์ฝํ ์ธ ๋ณ๋ก ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ ๊ฒ์ ๋๋ค.
Docker ํ๊ทธ๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ Git ๊ธฐ๋ณธ ์์(Git ๋ถ๊ธฐ, Git ํ๊ทธ...)๊ฐ ์๋๋ผ ๋ค์๊ณผ ๊ด๋ จ๋ ์ฒดํฌ์ฌ์ ๋๋ค.
- ์ด๋ฏธ์ง์ ๋ด์ฉ. ์ด๋ฏธ์ง ID ํ๊ทธ๋ ํด๋น ๋ด์ฉ์ ๋ฐ์ํฉ๋๋ค. ์ ๋ฒ์ ์ ๋น๋ํ ๋ ์ด๋ฏธ์ง์ ํ์ผ์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ด ์๋ณ์๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
- Git์์ ์ด ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ด์ญ. Werf๋ฅผ ํตํด ๋ค์ํ Git ๋ธ๋์น ๋ฐ ๋ค์ํ ๋น๋ ๊ธฐ๋ก๊ณผ ์ฐ๊ฒฐ๋ ์ด๋ฏธ์ง์๋ ๋ค์ํ ID ํ๊ทธ๊ฐ ์์ต๋๋ค.
์ด๋ฌํ ์๋ณ์ ํ๊ทธ๋ ์์ ์ด๋ฏธ์ง์คํ ์ด์ง ์ฌ์ธ.
๊ฐ ์ด๋ฏธ์ง๋ ์ผ๋ จ์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. from
, before-install
, git-archive
, install
, imports-after-install
, before-setup
, ... git-latest-patch
๋ฑ. ๊ฐ ๋จ๊ณ์๋ ํด๋น ๋ด์ฉ์ ๋ฐ์ํ๋ ์๋ณ์๊ฐ ์์ต๋๋ค. ๋ฌด๋ ์๋ช
(๋ฌด๋ ์ฌ์ธ).
์ด๋ฌํ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ ์ต์ข ์ด๋ฏธ์ง์๋ ์์ ์ด๋ฌํ ๋จ๊ณ ์ธํธ์ ์๊ทธ๋์ฒ๋ผ๋ ํ๊ทธ๊ฐ ์ง์ ๋ฉ๋๋ค. ๋ฌด๋ ์๋ช , - ์ด๋ ์ด๋ฏธ์ง์ ๋ชจ๋ ๋จ๊ณ์ ๋ํด ์ผ๋ฐํ๋ฉ๋๋ค.
๊ตฌ์ฑ์ ๊ฐ ์ด๋ฏธ์ง์ ๋ํด werf.yaml
์ผ๋ฐ์ ์ผ๋ก ์์ฒด ์๋ช
๊ณผ ์ด์ ๋ฐ๋ฅธ Docker ํ๊ทธ๊ฐ ์์ต๋๋ค.
๋ฌด๋ ์๋ช ์ ์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ๋น Git ์ปค๋ฐ์ ๊ฐํฉ๋๋ค.
- ์ด๋ฏธ์ง์ ๊ด๋ จ์ด ์๋ ํ์ผ์ ๋ณ๊ฒฝํ๋ Git ์ปค๋ฐ์ ์ ํญํฉ๋๋ค.
- ๋ธ๋์น์ ์ด์ Git ์ปค๋ฐ์ ๋ํ ๋น๋๋ฅผ ๋ค์ ์์ํ ๋ ์ด๋ฏธ์ง์ ํ์ฌ ๋ฒ์ ์ ์ ๋ฐ ๊ฒ์ฌํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ด๋ ์ด์ ๊ถ์ฅ๋๋ ํ๊ทธ ์ง์ ์ ๋ต์ด๋ฉฐ ๋ชจ๋ CI ์์คํ ์ ๋ํ werf์ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค.
werf์์ ํ์ฑํํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
์ด์ ๋ช
๋ น์ ํด๋น ์ต์
์ด ์์ต๋๋ค. werf publish
: --tag-by-stages-signature=true|false
CI ์์คํ
์์ ํ๊ทธ ์ง์ ์ ๋ต์ ๋ค์ ๋ช
๋ น์ผ๋ก ์ง์ ๋ฉ๋๋ค. werf ci-env
. ์ด์ ์๋ ๋งค๊ฐ๋ณ์๊ฐ ์ ์๋์์ต๋๋ค. werf ci-env --tagging-strategy=tag-or-branch
. ์ด์ ์ง์ ํ๋ฉด werf ci-env --tagging-strategy=stages-signature
๋๋ ์ด ์ต์
์ ์ง์ ํ์ง ์์ผ๋ฉด werf๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๊ทธ ์ง์ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค. stages-signature
. ํ werf ci-env
๋ช
๋ น์ ํ์ํ ํ๋๊ทธ๋ฅผ ์๋์ผ๋ก ์ค์ ํฉ๋๋ค. werf build-and-publish
(๋๋ werf publish
)์ด๋ฏ๋ก ์ด๋ฌํ ๋ช
๋ น์๋ ์ถ๊ฐ ์ต์
์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
werf publish --stages-storage :local --images-repo registry.hello.com/web/core/system --tag-by-stages-signature
...๋ค์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
-
registry.hello.com/web/core/system/backend:4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d
-
registry.hello.com/web/core/system/frontend:f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6
์ฌ๊ธฐ์ 4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d
์ด๋ฏธ์ง ๋จ๊ณ์ ์๊ทธ๋์ฒ์
๋๋ค. backend
๊ณผ f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6
- ์ด๋ฏธ์ง ๋จ๊ณ์ ์๋ช
frontend
.
ํน์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ werf_container_image
ะธ werf_container_env
Helm ํ
ํ๋ฆฟ์์๋ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํจ์๋ ์๋์ผ๋ก ์ฌ๋ฐ๋ฅธ ์ด๋ฏธ์ง ์ด๋ฆ์ ์์ฑํฉ๋๋ค.
CI ์์คํ ์ ๊ตฌ์ฑ ์:
type multiwerf && source <(multiwerf use 1.1 beta)
type werf && source <(werf ci-env gitlab)
werf build-and-publish|deploy
๊ตฌ์ฑ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์ ์ค๋ช ์์์ ํ์ธํ ์ ์์ต๋๋ค.
-
๋๋ ํ ๋ฆฌ โ ์ถํ(์ถํ) ; -
CI/CD ์์ โ ์ผ๋ฐ ์ ๋ณด โ ๋จ๊ณ ์๋ช ; -
GitLab CI/CD์ ํตํฉ โ .gitlab-ci.yml .
์ ์ฒด๋ก
- ์๋ก์ด ์ต์
werf publish --tag-by-stages-signature=true|false
. - ์๋ก์ด ์ต์
๊ฐ
werf ci-env --tagging-strategy=stages-signature|tag-or-branch
(์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์stages-signature
). - ์ด์ ์ Git ์ปค๋ฐ์ ํ๊ทธ ์ง์ ์ต์
์ ์ฌ์ฉํ ๊ฒฝ์ฐ(
WERF_TAG_GIT_COMMIT
๋๋ ์ต์ werf publish --tag-git-commit COMMIT
) ๊ทธ๋ฐ ๋ค์ ํ๊ทธ ์ง์ ์ ๋ต์ผ๋ก ์ ํํ์ธ์. ์คํ ์ด์ง ์๊ทธ๋์ฒ. - ์ ํ๋ก์ ํธ๋ฅผ ์ ํ๊ทธ ์ง์ ์ฒด๊ณ๋ก ์ฆ์ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- werf 1.1๋ก ์ด์ ํ ๋ ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ ์๋ก์ด ํ๊ทธ ์ง์ ๋ฐฉ์์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ๊ทธ ๋๋ ๋ถ๊ธฐ ์ฌ์ ํ ์ง์๋ฉ๋๋ค.
์ฝํ ์ธ ๊ธฐ๋ฐ ํ๊ทธ ์ง์ ์ ๊ธฐ์ฌ์์ ๋ค๋ฃจ๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ๋น Git ์ปค๋ฐ์ ๋ํ Docker ํ๊ทธ ์ด๋ฆ ์ ํญ์ ๋๋ค.
- Git ์ปค๋ฐ์ ๋ํ Docker ํ๊ทธ ์ด๋ฆ์ ๋ณต์๋ ฅ์ ์ด๋ฏธ์ง์ ๊ด๋ จ ์๋ ํ์ผ์ ๋ณ๊ฒฝํฉ๋๋ค.
- Git ๋ธ๋์น์ ๋ํ ์ด์ Git ์ปค๋ฐ์ ๋ํ ๋น๋๋ฅผ ๋ค์ ์์ํ ๋ ์ด๋ฏธ์ง์ ํ์ฌ ๋ฒ์ ์ ์ ๋ฐ ๊ฒ์ฌํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๊ทธ๊ฑธ ์จ! ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ ์์ง ๋ง์ธ์
PS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
werf 1.1 ๋ฆด๋ฆฌ์ค: ํ์ฌ ๋น๋ ๊ฐ์ ์ฌํญ ๋ฐ ํฅํ ๊ณํ ยป - ยซ
werf 1.0 stable ์๊ฐ: GitOps๋ ๊ทธ๊ฒ๊ณผ ์ด๋ค ๊ด๋ จ์ด ์์ผ๋ฉฐ, ์ํ ๋ฐ ๊ณํ์ ๋ฌด์์ ๋๊น? ยป - ยซ
werf - Kubernetes์ CI/CD์ฉ ๋๊ตฌ(๊ฐ์ ๋ฐ ๋น๋์ค ๋ณด๊ณ ์) "; - werf์ ํ์ ์ ๊ดํ ์ผ๋ จ์ ์ฐธ๊ณ ์ฌํญ:
- ยซ
werf๋ก 3๋ฐฉํฅ ๋ณํฉ: Helm์ "์คํ ๋ก์ด๋"๋ก ์ฌ์ฉํ์ฌ Kubernetes์ ๋ฐฐํฌ "; - ยซ
Werf๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ Helm ์ฐจํธ ์ถ์ "; - ยซ
werf์์ ๋จ์ผ ์ ์ฅ์ ๋ฐ ๋ค์ค ์ ์ฅ์์ ๋ํ ์ง์ ๋ฐ Docker ๋ ์ง์คํธ๋ฆฌ์ ๊ด๋ จ์ด ์๋ ์์ "; - ยซ
์ด์ ์ผ๋ฐ Dockerfile์ ์ฌ์ฉํ์ฌ werf์์ Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. ".
- ยซ
์ถ์ฒ : habr.com