Docker๋ ์ํํธ์จ์ด๋ฅผ ์ปจํ ์ด๋๋ผ๋ ๋จ์๋ก ํจํค์งํ์ฌ ๋ฐฐํฌํ๊ณ ์คํํ ์ ์๊ฒํ๋ ํ๋ซํผ. ์ฑ๊ณผ ํ๊ฒฝ์ ํ๋๋ก ๋ฌถ์ด ๋ฐฐํฌํ๊ธฐ์ ์ด๋์๋ ๋์ผํ๊ฒ ์คํ๋ ์ ์์. ๋ํ ๊ฐ์ํ ํ๋ซํผ์ผ๋ก์, ์ปดํจํฐ์ ์ฑ๋ฅ์ ๋์ฑ ํจ์จ์ ์ผ๋ก ์ธ ์ ์๊ฒ ํจ.
1. ์ฃผ์ ๊ฐ๋
๋์ปค์ ์ฃผ์ ๊ฐ๋ ์๋ ์ปจํ ์ด๋, ์ด๋ฏธ์ง, ๋์ปคํ์ผ, ๋ ์ง์คํธ๋ฆฌ๊ฐ ์์.
1. ์ปจํ ์ด๋
๊ฒฝ๋ํ๋ ๊ฐ์๋จธ์ ๊ณผ ๋น์ทํ ๊ฐ๋ . ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํ๊ฒฝ์ ํ๋์ ํจํค์ง๋ก ๋ฌถ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ ์ ์๊ฒ ํจ.
์ปจํ ์ด๋๋ฅผ ๊ธฐ๋ฐ์ผ๋กํ๋ ๊ฐ์ํ๋ Host OS ๊ทธ๋ฆฌ๊ณ Docker ์์ง์์์ ๋ฐ๋ก ๋์ํ๋ฉฐ Host์ ์ปค๋์ ๊ณต์ ํ๋ค.
์ด๋ ๊ฒ ์ปค๋์ ๊ณต์ ํ๊ฒ ๋๋ฉด io์ฒ๋ฆฌ๊ฐ ์ฝ๊ฒ ๋์ด ์ฑ๋ฅ์ ํจ์จ์ ๋์ผ ์ ์๋ค.
2. ์ด๋ฏธ์ง
์ปจํ ์ด๋๋ฅผ ์คํํ๋๋ฐ ํ์ํ ํ์ผ๊ณผ ์ค์ ์ ํฌํจํ ๊ฒ. ์ด๋ฌํ ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋์ ๋ด์์ ์คํํ๋ ๊ฒ.
3. ๋์ปค ํ์ผ
๊ฐ๋ฐ ์์คํ์ผ๊ณผ ํ๊ฒฝ์ ์ด๋ฏธ์งํ ํ๊ธฐ ์ํด์ ์์ฑํด์ผ ํ๋ ์คํฌ๋ฆฝํธ ํ์ผ. ์ด๋ฏธ์ง ์์ฑ๊ณผ์ ๊ณผ ํ์ํ ๋ช ๋ น์ด๋ฅผ ์ ์
4. ๋ ์ง์คํธ๋ฆฌ
์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๋ฐฐํฌํ๋ ์ฅ์. ๋์ปค ํ๋ธ๊ฐ ๋ํ์ ์ธ ๊ณต๊ฐ ๋ ์ง์คํธ๋ฆฌ์. ๊นํ๋ธ์๋ ๋น์ทํ ๋๋์ผ๋ก, ์ด๋ฏธ์ง๋ฅผ pull๋ฐ์์์ ์ฌ์ฉํ ์ ์์. ๋๋ tileserver-gl์ ์ฌ์ฉํ๊ธฐ ์ํด ์ด๋ฏธ์ง ๋ฐ์์์ ์ผ์.
2. Docker compose
์ฌ๋ฌ ๊ฐ์ Docker ์ปจํ ์ด๋๋ฅผ ํ ๋ฒ์ ๊ด๋ฆฌํ๊ณ ์คํํ ์ ์๋ ๋๊ตฌ. ์ฌ๋ฌ ์ปจํ ์ด๋๊ฐ ์๋ก ์์กด์ฑ์ ๊ฐ์ง๊ณ ์๋ ์ฑ์ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ํจ. ์ฐ๋ฆฌ ์๋น์ค๋ ๊ธฐ๋ณธ ์น์ฌ์ดํธ ์์ tileserver-gl์ ๋์ปค ํ๋ธ์์ ๋ฐ์์์ ์ฐ๋ ํํ๋ผ, ์ปจํ ์ด๋ ๋ ๊ฐ๊ฐ ์๋ก ์์กด์ฑ์ ๊ฐ์ง๊ณ ์์๊ธฐ์ Docker compose๋ฅผ ์ฐ๊ฒ ๋จ.
์ด Docker compose๋ YAML ํ์ผ์ผ๋ก ์๋น์ค, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๋ฑ์ ์ค์ ์ ์ ์ํ๋ค.
3. ์ํธ๋ฆฌํฌ์ธํธ(Entrypoint)
์ด๊ธฐ์ tileserver-gl์ด๋ผ๋๊ฐ, webpack ๊ตฌ์ฑ์ด๋ผ๋๊ฐ ํ๋ ๋ฑ์ ๋ช ๋ น์ด๋ฅผ ์คํํด์ผํด์ ์ด ์ํธ๋ฆฌํฌ์ธํธ๋ฅผ ์๊ฒ ๋์๋ค. ์ด๋ ๋์ปค ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ์คํ๋๋ ๊ธฐ๋ณธ ๋ช ๋ น์ด์ด๋ค. ๋์ปค ํ์ผ ๋ด์ ENTRYPOINT ์ง์์ด๋ฅผ ์ฌ์ฉํด ์ค์ ํ๋ค.
๋๋ ์ด๊ฑธ ์ค์ ํ๋ฉด์ Dockerfile์ RUN ์ด ์๋๋ฐ ์ด๊ฑธ ํ๋ ์ด์ ๋ฅผ ๋ชฐ๋์๋ค. ๊ทธ๋์ ์ฐพ์๋ณด๋, RUN ๋ค์ ๋ช ๋ น์ด๋ ์ด๋ฏธ์ง ๋น๋ ์์ ์ฌ์ฉ๋๋ ๊ฑฐ๊ณ , ๋ด๊ฐ ์ํ๋ ๊ฑด ์ปจํ ์ด๋ ์คํ ์ ์คํ๋์ด์ผ ํ๋ ๊ฑฐ๋ผ์ ENTRYPOINT ๋ฅผ ์จ์ผํ๋ ๊ฒ์ด๋ค. ๋ํ CMD ์์ ์ฐจ์ด ๋ํ ์ค์ํ๋ค. CMD๋ ๊ธฐ๋ณธ ์คํ ๋ช ๋ น์ด๋ ์ธ์๋ฅผ ์ ๊ณตํ๋๋ฐ, ENTRYPOINT๊ฐ ์์ ๊ฒฝ์ฐ์๋ ENTRYPOINT์ ์ธ์๋ก ์ฌ์ฉ์ด ๋๋ค. ์์ ๋๋ CMD์ฌ์ฉ!
+) ๊ทธ ์ธ์ kubernetes๋ ์์ฃผ ๊ฐ์ด ์ธ๊ธ๋๊ธฐ ๋๋ฌธ์ ์ด์ง ์ ๋ฆฌํด๋ณด์๋ฉด, ์ผ๋จ ์ฟ ๋ฒ๋คํฐ์ค๋ ๊ตฌ๊ธ์์ ๋ง๋ค์๋ค. ๊ตฌ๊ธ์ ์๋,, ํ๋๊ฒ ๋ง์ผ๋๊น.. ๊ด๋ฆฌํด์ผํ๋ ์ปจํ ์ด๋๋ ์งฑ ๋ง๋ค. ๊ทธ๋์ ๋ณต์กํ ๋ถ์ฐ ์์คํ ์ ์ฝ๊ฒ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ํ๋ ๋์์ ์ปจํ ์ด๋๋ฅผ ํตํด ๊ฐ๋ฅํ ์ฌ์ฉ๋ฅ ๊ฐ์ ์ ์ด์ ์ ๋๋ฆฌ๊ธฐ ์ํด ๋ง๋ค์๋ค๊ณ ํ๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ์ฌ๋ฌ ๋์ ๊ฐ์ ๋จธ์ ์ ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑํ์ฌ ํ๋์ ๋จ์ผ ์์คํ ์ฒ๋ผ ๋์ํ๊ฒ ํ๋ค. ๊ฐ๊ฐ์ ๋จธ์ ์ ๋ ธ๋๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
์ด๋ฐ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฐ๋ฉด ์ฑ์ ๋ฐฐํฌ, ๊ด๋ฆฌ, ํ์ฅ์ด ์๋ํ๋์ด ์ด์ ๋ถ๋ด์ด ์ค์ด๋ค๊ณ , ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ์ฌ์์ ๋๊ฑฐ๋ ๊ต์ฒด๋๊ธฐ์ ๊ฐ์ฉ์ฑ์ ์ ์งํ ์ ์๋ค. ํ์์ ๋ฐ๋ผ ์ฑ์ ์ํ์ ์ผ๋ก ํ์ฅํ๊ฑฐ๋ ์ถ์ํ ์ ์๊ธฐ์ ๋งค์ฐ ์ ์ฐํ๋ค. ๋ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์์ ์ข ์๋์ง ์๊ธฐ์ ๋ค์ํ ํด๋ผ์ฐ๋ ๋ฐ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๋ค.