docker build
๋ฅผ docker buildx build
๋ก ํธ์ถํ๋ ์ง์์ ์ถ๊ฐํ๋ ค๊ณ ํ์ง๋ง ๊ทธ๋ณด๋ค ์กฐ๊ธ ๋ ๋ณต์กํ ์ ์์ต๋๋ค.
๋ด ์๋๋ ๋ค์ ์ ํ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ Docker ๋น๋ ๋ ์ด์ด๋ฅผ ๋ณด๋ค ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ์บ์ํ ์ ์์ต๋๋ค. ์ด์จ๋ --cache-to
๋ฐ --cache-from
์ต์
์ ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์ถ์ ๋ค๋ฅธ ๋ง์ ์ต์
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Docker Buildx์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ณผ๊ฑฐ์ ์ ๋ Dockerfile ๋ด๋ถ์ ๋ฒ๋ค๋ฌ์ ๋ํ ์บ์ ๋ณผ๋ฅจ์ ์ฑ๊ณต์ ์ผ๋ก ํ์ฑํํ์ฌ Gemfile ๋ฐ Gemfile.lock์ ๋ณ๊ฒฝํด๋ ์ด๋ฏธ์ง์ ๋น๋ ์๊ฐ ์ข ์์ฑ์ ์์ ํ ๋ค์ ๊ณ์ฐํ์ง ์๊ณ ๋์ ์บ์์์ ๋น๋ํ์ฌ ์๋ก์ด ์ข ์์ฑ๋ง ๋ค์ ๊ณ์ฐ๋์์ต๋๋ค.
์ด๊ฒ์ ๋ถ๋ช ํ ํ์ ์ต์ ํ์ด์ง๋ง buildx์์๋ง ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ๋น๋ํท ๋๊ตฌ ์ธํธ๋ ์ด์ IMHO์์ ๊ฝค ํ์ค์ด ๋๊ณ ์์ต๋๋ค. buildx๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก Kuby ๋น๋๋ฅผ ํธ์ถํ ์ ์๋ค๋ฉด ์ข๊ฒ ์ต๋๋ค!
๋๋ ์ด๊ฒ์ ๋์ค์ ๋ค์ ๊ตฌํํ๋ ค๊ณ ์๋ ํ ์ ์์ต๋๋ค. 0.15.0์ด ๊ฒฌ๊ณ ํ๊ฒ ๋ฆด๋ฆฌ์ค ๋ ์ง๊ธ์ ๋ ์ฌ์ธ ์ ์์ต๋๋ค. ํํธ, GitHub Actions์ ์๋ํ๋ ์๊ฐ WIP์ด์ง๋ง ํ์ฌ ๋งค์ฐ ์ ๋ณด์ ๋๋ค. https://github.com/kingdonb/kuby_test
์ด ๋ง์ง๋ง ์์น์์ ์บ์ฑ์ ์ ์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ฉด kuby-core์ ๋ค์ ๊ธฐ์ฌํ๊ฑฐ๋ getkuby ํ๋ก์ ํธ์ ์ด๋๊ฐ์ ์ด๊ธฐ ์ํด ํ๊ทธ๋ฅผ ์ง์ ํ๊ณ ์์ ๋ฅผ ๋ง๋ค ์ค๋น๊ฐ ๊ฑฐ์ ์๋ฃ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ด!
๊ธฐ๋ณธ ๋น๋ ๋ก ์ค์ ํ๋ฉด ์ง๊ธ ๋ฐ๋ก buildx๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค์์ buildx ๋ฐ ํด๋น ์บ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ Github ์์ ์ ์์ ๋๋ค.
https://evilmartians.com/chronicles/kubing-rails-stressless-kubernetes-deployments-with-kuby#deploying -continuously-with-kuby-and-github-actions๋ ์ฐธ์กฐํ์ญ์์ค.
์บ์ฑ์ ์ค์ ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ --only
ํ๋๊ทธ์ ๊ฐ์ ๊ฒ์ ์ฐพ๊ณ ์์์ต๋๋ค! ์ฌ๊ธฐ์์ ์ํํ ๊ฒ์ฒ๋ผ ๊ฐ ๋น๋ ์ ํ์ ๋ํ ๋ฒ์๋ฅผ ๋ถ๋ฆฌํด์ผ ํ๋ค๋ ์์ด๋์ด๋ฅผ ์ป์์ต๋๋ค.
ํธ๋ฆฌํ ์ฐธ์กฐ๋ฅผ ์ ๊ณตํด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค ๐ ์ง๊ธ ํ๋ก์ฐํ๊ณ ์๋์ง ํ์ธํ๊ณ ์์ต๋๋ค!
setup-buildx-action( install: true
)์ ๊ธฐ๋ณธ ๋น๋ ๊ธฐ๋ฅ๋ ํ์คํ ๋๋ฝ๋์์ต๋๋ค.
์ด์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค! ๋ฐฉ๊ธ 10์ด ์ด๋ด์ ์ฑ ์ด๋ฏธ์ง ๋น๋๊ฐ ์๋ฃ๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ์ง๊ธ ๊ฒช๊ณ ์๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋ง๋ RAILS_MASTER_KEY๊ฐ ์ ๋๋ก ๋ด๋ณด๋ด์ง์ง ์๋ ๊ณณ์์ ํ๊ท๋ฅผ ๋ฐ๊ฒฌํ์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ง๊ธ์ ์์ค๋ฅผ ์ฝ์ด๋ณด๊ณ ์์๋ผ ๊ฒ์ ๋๋ค.
์ด ์ปค๋ฐ์์์ฒ๋ผ install: true
์ build
๋ฉ์๋๊ฐ $# buildx
lib/kuby/docker/cli.rb
๋ฅผ ํธ์ถํ๊ณ --cache-to
๊ณผ ๊ฐ์ buildx ๊ตฌ์ฑ์ ์ ๋ฌํ ์ ์์ต๋๋ค. --
๋ค์์ *docker-args
๋ฐฐ์ด ๐ ๋ฐ๋ผ์ ๋ซ์ ์ ์์ต๋๋ค. ๋จ, kuby-core๊ฐ buildx์ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌธ์ํํ๋ ๊ฒ์ด ์ข์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ kuby์ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
buildx๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ ๋ง ๋ฉ์ง๋๋ค. buildx ๊ด๋ จ ์ ๋ณด๋ฅผ ์ฐพ์์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์๊ณ Just Workโข๊ฐ ๋ ๊ฒ์ด๋ผ๋ ์ธ์์ ๋ฐ์์ต๋๋ค docker/setup-buildx-action@v1
์ก์
์ด ํ๋ ์ผ์ด ๋ฌด์์
๋๊น? buildx๋ deb/rpm ํจํค์ง๋ฅผ ํตํด ์ค์น๋ Docker Desktop ๋ฐ ์ต์ ๋ฒ์ ๊ณผ ํจ๊ป ์ ๊ณต๋๋ฏ๋ก Kuby๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ์ค์ ํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. env var๋ฅผ ํตํด ๊ตฌ์ฑํ ์ ์๋ค๋ฉด docker buildx build
ํธ์ถ์ด ํ์ํ์ง ์์๊น์? Kuby๊ฐ ์ด๋ฅผ ๊ฐ์งํ๊ณ ์ ์ docker build
์ผ๋ก ๋์๊ฐ ์ ์์ต๋๊น?
์, ๊ฐ๋ฅํฉ๋๋ค(GitHub Action์ install: true
๊ฐ ์ํํ๋ ์์
์
๋๋ค): https://docs.docker.com/buildx/working-with-buildx/#set -buildx-as-the-default- ๊ฑด์ถ์
์
์ข์ต๋๋ค. docker build
๊ฐ docker buildx
์ ๋ณ์นญ์ผ ๊ฒฝ์ฐ Kuby๊ฐ ํน๋ณํ ์์
์ ์ํํ ํ์๊ฐ ์์ต๋๋ค. ์ํ๋ ๋น๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ข์ต๋๋ค.
docker build
๊ฐdocker buildx
์ ๋ณ์นญ์ผ ๊ฒฝ์ฐ Kuby๊ฐ ํน๋ณํ ์์ ์ ์ํํ ํ์๊ฐ ์์ต๋๋ค. ์ํ๋ ๋น๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.