Docker ์ ์ฉ๊ธฐ
pxd ํํ์ด์ง์ Docker ์ ์ฉํ๊ธฐ
Jan 25, 2022
๋ค์ด๊ฐ๋ฉฐ
pxd ํํ์ด์ง์ ์น ์ ๊ทผ์ฑ ์ธ์ฆ ๋งํฌ๋ฅผ ํ๋ํ๊ธฐ ์ํด ๊ทธ๋ฃน์ ๋ชจ๋๊ฐ ๋ฆฌ๋ด์ผ ์์ ์ ์ฐธ์ฌํ๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฃน์ ๋ชจ๋๊ฐ ๋์ผํ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ฐ๋ฐํ ์ ์๋๋ก Docker๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ์ ์ค๋์ Docker ์ ์ฉ๊ธฐ๋ฅผ ๊ฐ๋ตํ ์จ๋ณผ๊น ํฉ๋๋ค.
Docker๋ ๋ฌด์์ธ๊ฐ

Docker๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ธ์ง์ ๋ํ ์ ๋ณด๋ ์ฐธ๊ณ ํ ์ ์๋ ๋ฌธ์๋ ๋์์ ๋ฑ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๊ธ์์๋ Docker ๊ณต์ ํํ์ด์ง์ ๋งํฌ์ wiki์ ์ ์๋ ๊ธ์ ๊ฐ์ ธ์์ต๋๋ค.
๋์ปค ์ปจํ ์ด๋๋ ์ผ์ข ์ ์ํํธ์จ์ด๋ฅผ ์ํํธ์จ์ด์ ์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ์์ ํ ํ์ผ ์์คํ ์์ ๊ฐ์ผ๋ค. ์ฌ๊ธฐ์๋ ์ฝ๋, ๋ฐํ์, ์์คํ ๋๊ตฌ, ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ์๋ฒ์ ์ค์น๋๋ ๋ฌด์์ด๋ ์์ฐ๋ฅธ๋ค. ์ด๋ ์คํ ์ค์ธ ํ๊ฒฝ์ ๊ด๊ณ ์์ด ์ธ์ ๋ ๋์ผํ๊ฒ ์คํ๋ ๊ฒ์ ๋ณด์ฆํ๋ค.
Docker๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ์ด์
1. ๊ทธ๋ฃน์๋ค์ node ํ๊ฒฝ์ด ์ ๋ถ ๋ค๋ฅด๋ค
์ฒซ์งธ๋ก, ํ์ฌ ์งํ ์ค์ธ ํ๋ก์ ํธ๋ฅผ ์ํํ๋ฉด์ pxd ํํ์ด์ง ๋ฆฌ๋ด์ผ ์์ ์ ์ํํ๊ฒ ์ค์์นญ ํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ฑํด์ผ ํ์ต๋๋ค.
๊ทธ๋ฃน์๋ค์ ๊ฐ๋ฐ ํ๊ฒฝ์ ํ์ฌ ์งํ ์ค์ธ ํ๋ก์ ํธ์ ๋ง๋ node ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ด๋ค ํ๋ก์ ํธ๋ node 12, ์ด๋ค ํ๋ก์ ํธ๋ node 14 ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ฃ .
ํ์ฌ pxd ํํ์ด์ง๋ Nuxt๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. Nuxt์์ ์๊ตฌํ๋ node ํ๊ฒฝ์ด ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์ ์๊ตฌ์ฌํญ์ ๋ง๋ node ๋ฒ์ ์ ๋์ผํ๊ฒ ์ฌ์ฉํด์ผ ํ์ต๋๋ค.
๋์งธ๋ก, ๋์ผํ node ๋ฒ์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ค์ด ์กด์ฌํฉ๋๋ค.
Nuxt๊ฐ ์ค์น๋๋ค ํ๋๋ผ๋ Nuxt์์ ์ฌ์ฉ๋๋ ํจํค์ง์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.(ํจํค์ง๊ฐ ์๊ตฌํ๋ ์ต์ํ์ node ๋ฒ์ )
node ๋ฒ์ ์ด ๋ค๋ฅด๊ธฐ์ npm ๋ฒ์ ๋ ๋ฌ๋ผ์ ํจํค์ง๋ฅผ ์ค์นํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
npm ๋ฒ์ ์ ๋ฐ๋ผ์ package-lock.json์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ค์์ ํ๋ก์ ํธ๋ฅผ ์ํํ๋ ์ํฉ์์ nvm์ ์ฌ์ฉํด์ node ๋ฒ์ ์ ๊ด๋ฆฌํ๊ธฐ์๋ ํ๊ณ๊ฐ ์์์ต๋๋ค. ํ๋ก์ ํธ๊ฐ 10~20๊ฐ๊ฐ ๋์ด๊ฐ๋ค๋ฉด 10~20๊ฐ์ ๋ ธ๋ ๋ฒ์ ์ด ์กด์ฌํด์ผ ํ๋ค๋ ์๋ฏธ์ด๊ณ , ๊ฐ ํ๋ก์ ํธ๊ฐ ๋ชจ๋ ๋ค๋ฅธ node ๋ฒ์ ์ ๊ฐ์ง๊ณ ์์ง ์์ ์๋ ์๊ธฐ ๋๋ฌธ์ด์ฃ .(์๋ก ๋ค๋ฅธ ํ๋ก์ ํธ๊ฐ ๊ฐ์ node ๋ฒ์ ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.)
Docker๋ก ๊ตฌ์ฑํ๋ฉด ํ๋ฒ ์ฌ์ฉํ๊ณ , ๋น๋ถ๊ฐ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์ญ์ ํ๊ณ , ๋ค์ ํ์ํ๋ค๋ฉด ์ค์นํด์ ์ฌ์ฉ ํ ์ ์๊ธฐ ๋๋ฌธ์ nvm๋ณด๋ค๋ ํจ์ฌ ๋ ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Docker ๊ฒฝํํด๋ณด๊ธฐ
Docker๋ฅผ ๊ฒฝํํด ๋ณด์ง ๋ชปํ ๊ทธ๋ฃน์๋ค์ ์ํด Docker๋ฅผ ๋ฏธ๋ฆฌ ์ฌ์ฉํด ๋ณด๋ฉด์ ์ฐ๋จน(?) ํด๋ณผ ์ ์๋ ๊ธฐํ๋ฅผ ๋ง๋ค๊ณ ์ถ์์ต๋๋ค.
์ด๋ ค์ ๋ ์
1. Windows ์ฌ์ฉ์์ Docker ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
windows์์ Docker์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ , Mac ์ ์ ์์ ์ถฉ๋ ์์ด ์ฌ์ฉํ๊ธฐ ์ํด์๋ wsl2(Windows Subsystem For Linux 2) ์ค์น๊ฐ ํ์์ ๋๋ค.
windows์์ wsl2๊ฐ ๋ฌด์์ธ์ง ๊ฐ๋ ์ ์์์ผ ํ๋ ๋จ๊ณ๊ฐ ํ์ํ๋ฐ, Docker๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ ๊ฐ์ง ๋์ด์ผ ํ๋ ๊ฑธ๋ฆผ๋์ด ๋ ์๋ ์์์ต๋๋ค.
๋คํํ๋ ๊ทธ๋ฃน์๋ค์ด wsl ๊ฐ๋ ์ ํฐ ์ด๋ ค์ ์์ด ์ต๋ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ค์์ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
2. dev-container์์ windows์ ์ฑ๋ฅ ์ ํ
vscode + Docker์ ๊ฒฐํฉ์ผ๋ก ํ๋ก์ ํธ์ ํ์ํ ๋ชจ๋ ํ๊ฒฝ ๊ตฌ์ฑ(vscode-extension ์ค์ , Docker ์ค์ )์ ๋ง๋ค ์ ์๋๋ฐ์,
๊ทธ๋ฃน์๋ค ์ ๋ถ vscode๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ dev-container๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๋ ค๊ณ ํ์ผ๋ windows ํ๊ฒฝ์์ ์ฑ๋ฅ ๋ฌธ์ (์ปดํจํฐ ๋ฉ์ถค, ์ปดํจํฐ ํญ๋ฐ ์ง์ )๋ก ์ ์ฉํ์ง ๋ชปํ์ต๋๋ค.
windows์์์ ์ต์ ํ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ด ์๋๋ฐ ์ ์ฉํด ๋ณด์ง ๋ชปํ์ง๋ง ์๋ ๋ฐฉ๋ฒ์ ํตํด ์ ์ฉํด ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค์.
๋ง์น๋ฉฐ
pxd ํํ์ด์ง ๋ฆฌ๋ด์ผ ์์ ์์ Docker๋ฅผ ์ ์ฉํ ๋ ๋๊ผ๋ ์ ๋ค์ ์ ๋ฆฌํด ๋ดค์ต๋๋ค.
๋ค์ํ node ํ๊ฒฝ์์ ํ๋ก์ ํธ๋ฅผ ์งํํด์ผ ํ๋ ํน์ง์ ๊ฐ์ง ๊ทธ๋ฃน ํน์ฑ์ Docker๋ฅผ ํตํด ์กฐ๊ธ ๋ ์ ์ฐํ๊ฒ ์์ ํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค ์ ์์์ต๋๋ค.
ํ์ฌ XE ๊ทธ๋ฃน์ ์ฅ๋น๋ฅผ Windows์์ Mac์ผ๋ก ์ ํ์ค์ ์์ต๋๋ค. ๊ธฐ์กด์๋ Mac์ ์ฌ์ฉํ๋ ์์ ์์ windows ์์ ์๊ฐ ํผ์ฌ๋์ด ์์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ์ ์์ด ์ฌ์ ์์ ์ด ํ์์๋๋ฐ, Mac ์ ํ์ ํตํด ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ฑ, Docker๋ฅผ ์ฌ์ฉํ๋๋ฐ ์กฐ๊ธ ๋ ์์ ๋ก์ ์ง์ง ์์๊น ํฉ๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.