๋์ผํ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ค๋ฅธ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๊ณ ์ถ์ต๋๋ค.
ํ์ฌ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด
์ฒซ ๋ฒ์งธ ์๋ฃจ์ ์ ์คํ ๊ฐ๋ฅํ์ง ์๊ณ ๋ ๋ฒ์งธ ์๋ฃจ์ ์ ๊ณผ์์ ๋๋ค. ๋๊ธฐํ ๋ ์ํ๋ก ์ ์งํ์ง ์๊ณ ํ์ผ์ ๋ณต์ฌํ๊ณ ์ถ์ต๋๋ค.
์ ์ ๋ ๊ตฌ์ฑ :
myservice:
image: foo/bar
copy:
- src:dest
์ฌ๊ธฐ์ copy
์ ์๋ฏธ๋ ๋ฌด์์
๋๊น? ์ฐ๋ฆฌ๋ ํธ์คํธ์์ ํ์ผ์ ๋ณต์ฌ docker-compose
์ฌ์ฉํ์ฌ ์๋ก ์คํ ์ฉ๊ธฐ์์์ ์คํ๋ฉ๋๋ค docker cp
?
AFAIK์๋ _no_ ํ์ฌ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ณด๋ค:
```#! bash
$ docker cp -h
์ฌ์ฉ๋ฒ : docker cp [OPTIONS] CONTAINER : PATH HOSTDIR |-
์ปจํ
์ด๋์ PATH์์ ํธ์คํธ์ HOSTDIR๋ก ํ์ผ / ํด๋ ๋ณต์ฌ
๋ช
๋ น์ ์คํํฉ๋๋ค. '-'๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ STDOUT์ tar ํ์ผ๋ก ์๋๋ค.
--help = false ์ธ์ ์ฌ์ฉ๋ฒ
```
์ฌ๊ธฐ์ ๋ณต์ฌ์ ์๋ฏธ๋ ๋ฌด์์ ๋๊น? docker cp๋ฅผ ์ฌ์ฉํ์ฌ docker-compose๊ฐ ์คํ๋๋ ํธ์คํธ์์ ์๋ก ์คํ๋๋ ์ปจํ ์ด๋๋ก ํ์ผ์ ๋ณต์ฌํฉ๋๊น?
์
AFAIK ํ์ฌ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
docker cp
๋ช
๋ น์ด์ด๋ฅผ ์ํ ํ ์ ์์์ ํ์ธํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํธ์คํธ ์ธก์ ์ปจํ
์ด๋ ๋ฐ์ดํฐ์ ์ก์ธ์คํ์ฌ ์ฌ์ ํ ๊ฐ๋ฅํฉ๋๋ค (๋ด๊ฐ ๋ชป ์๊ฒผ์ต๋๋ค)
์, ์ ๋ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์ ํ ์นํธํ์ง ์์ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ Docker์ ๋ํ ๋ง์ ๊ฒ๋ค๊ณผ ๊ฐ์ ์ ๊นจ๋จ๋ฆด ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋ํ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. Docker๋ ๋ถ๊ฐ์ง๋ก ์ ์ ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทํ์ ๋ฌธ์ ์ ๋ํ ๋ค๋ฅธ ํด๊ฒฐ์ฑ ์ _ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. :)
์ด์ docker-1.8์ด docker cp
๋ฅผ ํตํด ์ปจํ
์ด๋์ ๋ณต์ฌ๋ฅผ ์ง์ํ๊ณ swarm-0.4.0-rc2๊ฐ docker cp
๋ํ ์ง์์ ์ถ๊ฐ ํ์ผ๋ฏ๋ก ์์ฑ ์์ค์์์ด ๋ฌธ์ ๋ฅผ ๋ค์ ๊ฒํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ค์์ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค (ํ์ฌ _almost_ ํ๋ก๋์
์์ ์ค์ ๋ก ์ํํ๋ ์์
์ ๋ฐ์ ํจ).
CI ๋น๋ ์ด๋ฏธ์ง ํ๊ทธ๋ก ๋ง์ ์ปจํ
์ด๋๋ฅผ ์ธ๊ธํ๋ docker-compose.yml ํ์ผ (์ฆ, ํ๋ก๋์
์์ build:
์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ง๊ธ์ ๊ฐ๋ฅํ ์๋ ์์ง๋ง ์ด์ ๋ฆด๋ฆฌ์ค์์๋ swarm๊ณผ ์ ์ด์ธ๋ฆฌ์ง ์์์ต๋๋ค) ์๋ฅผ ๋ค์ด ๋ฐฐ์น ํ๊ฒฝ๊ณผ ์ ํํ ์ผ์นํ๋ ์ ์ ํ๋ก ๊ตฌ์ฑ ํ์ผ์ด ๋ชจ๋ ํ์ํฉ๋๋ค. ํ์ฌ docker-compose.yml์ด์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ผ์ _each_ target docker-machine์ ์ ํํ ๊ฒฝ๋ก์ ์๋์ผ๋ก ๋๊ธฐํํด์ผํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ volume:
์ค ์คํ์ ์ถ๊ฐํฉ๋๋ค.
docker cp
๋ฅผ ์ง์ํ๋ฉด ์์คํ
๋ฐฐํฌ ๋ฐฉ๋ฒ์์ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ ํ์ผ ๋๊ธฐํ๋ฅผ ์ ๊ฑฐํ๊ณ ๊ตฌ์ฑ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฝ์
๋๋์๊ธฐ๋ฅผ ๋ ์ ์ ์ด ํ ์ ์์ต๋๋ค ( volume:
์ค์ ์ธ๊ธ ๋ ํ์ผ์ ๋ณ๊ฒฝํ๋ ๋ชจ๋ ์ฌ๋์ด ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ด์ ์ ๋ฐฐํฌ ๋ ๋ชจ๋ ์ปจํ
์ด๋ (๊ทธ๋ฆฌ๊ณ ๋ด๋ถ ๊ตฌํ์ด ์ธ๊ธ ํ ๊ตฌ์ฑ์ ๋ค์ ์ฝ์ ๋๋ง๋ค, ์๋ง๋ ๋ค์ ์ปจํ
์ด๋๊ฐ ๋ค์ ์์๋ ๋๋ง, ์๋ง๋ ์ปจํ
์ด๋ ๋ด๋ถ์ ๋ค์ํ ๋๊ตฌ๊ฐ ์์๋ ๋; ์์์น ๋ชปํ ์ผ ์ ์์) ๋ฐ ๋ฏธ๋ (์์ ๋จ).
OTOH, (์์์ ๊ฐ๋ตํ ์ธ๊ธํ๋ฏ์ด) ์๋ง๋ build:
์ฌ์ฉํด์ผํฉ๋๋ค. ์ฌ๊ธฐ์ ๋จ์ ์ ๋ฐฐํฌ ์ปจํ
์ด๋ ์ ํ๋ณ๋ก ์ถ๊ฐ Dockerfile์ ์์ฑํด์ผํ๋ค๋ ๊ฒ์
๋๋ค. ํ๋๋ CI ๋น๋ ์ด๋ฏธ์ง ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ ์ ๊ตฌ์ฑ ํ์ผ ์ธ์ ํฐ ์ฉ์
๋๋ค. copy:
์ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ๋ท๋ฐ์นจ๋๋ ์์ฑ์ docker cp
๋ ์ด๋ฌํ ๋ชจ๋ ์ค๋ณต์ ๋ฐฉ์ง ํ ์์๊ฒ ํด์ค๋๋ค.
๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ๋ฐฉ๋ฒ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํธ์คํธ ๋ณผ๋ฅจ ์ผ ํ์๋ ์์ผ๋ฉฐ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ ์ด๋์ ํจ๊ป ์๋ํด์ผํฉ๋๋ค.
Bedies docker-machine
์ (๋) docker-machine scp
๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด์จ๋ ๊ธฐ๊ณ์ ์ค๋น๋ก ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ docker
๋๋ docker-compose
๊ฐ์ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํธ์คํธ ๋ณผ๋ฅจ์ ์ํ ํ ์ ์์ต๋๋ค.
"์ฌ์ ํ ๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ๋ฐฉ๋ฒ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํธ์คํธ ๋ณผ๋ฅจ ์ผ ํ์๋ ์์ผ๋ฉฐ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ
์ด๋์ ํจ๊ป ์๋ํด์ผํฉ๋๋ค."
๋๋ ํ์ ์ด ๋ฌด๋ฆฌ ์ผ ๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์ต์ ์ธ์ง ๋ณด์ง ๋ชปํฉ๋๋ค. AFAICS๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ค์ ๋
ธ๋์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ
์ด๋๊ฐ ์์ด์ผํ๋ค๊ณ ํํํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ด์จ๋ ๋ค๋ฅธ ์ปจํ ์ด๋ ala ์ค์ผ์ค๋ง ์ ๋ต๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก swarm ์์ฒด๋ฅผ ํตํด ๋งค์ฐ ๋ ธ๋์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌ ํ ์ ์์ต๋๊น?
"Bedies docker-machine์ ์ด์จ๋ ๋น์ ์ด ๊ธฐ๊ณ์ ์ค๋น๋ก ํ ์์๋ docker-machine scp๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋น์ ์ docker ๋๋ docker-compose์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํธ์คํธ ๋ณผ๋ฅจ์ ํ ์ ์์ต๋๋ค."
๋๋ ํ์ฌ ์ด๊ฒ์ํ๊ณ ์๋ค. ๊ณ ํต ์ค๋ฝ์ต๋๋ค. ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํ๋ ์ฌ๋๋ค์ ๊ตฌ์ฑ ํ์ผ์ ์ด๋ํ๋ ๊ฒ์ ์์ต๋๋ค. docker-compose yml์์ ์ง์๋๋ ๊ฒฝ์ฐ ์ปจํ
์ด๋๊ฐ ์๋ ๋จ๊ณ์์ด ๋ค์ ์์ฑ ๋ ๋๋ง๋ค ๋ฐ์ํฉ๋๋ค.
"์ด์จ๋ ๋ค๋ฅธ ์ปจํ
์ด๋ ์๋ผ ์ค์ผ์ค๋ง ์ ๋ต์์ ํ ์์๋ ๊ฒ์ฒ๋ผ ์ค์ ์์ฒด๋ฅผ ํตํด ๋งค์ฐ ๋
ธ๋์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ
์ด๋๋ฅผ ๋ฐฐํฌ ํ ์ ์์ต๋๊น?"
์๋ง๋ ์ฐ๋ฆฌ๋ ํ ์ ์์ง๋ง ์ค์ผ์ผ๋ง์ ๋น์ถ์ด ๋ณผ ์ ์๋ค๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค.
"์ด์จ๋ ๋ค๋ฅธ ์ปจํ
์ด๋ ์๋ผ ์ค์ผ์ค๋ง ์ ๋ต์์ ํ ์์๋ ๊ฒ์ฒ๋ผ ์ค์ ์์ฒด๋ฅผ ํตํด ๋งค์ฐ ๋
ธ๋์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ
์ด๋๋ฅผ ๋ฐฐํฌ ํ ์ ์์ต๋๊น?"
ํ , ๋ด ๋ผ๊ฐ 10 ๋
ธ๋ ํฌ๊ธฐ๋ผ๋ ๊ฒ์ ์๋ค๋ฉด; ์ฃผ์ด์ง ๋์ปค ์์ง ๋
ธ๋์์ ์ค๋ณต์ด ํ์ฉ๋์ง ์๋ ์ ์ฑ
์ผ๋ก ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ปจํ
์ด๋๋ฅผ ํฌ๊ธฐ 10์ผ๋ก ํ์ฅ ํ ์ ์์ต๋๊น? ๋ฌธ์ ๋ (๋ด๊ฐ ๋์น ๊ฒ์ด ์๋๋ผ๋ฉด) ์๋ฅผ ๋ค์ด ํด๋น ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์ฐธ์กฐํด์ผํ๋ ์ปจํ
์ด๋๊ฐ ์ธ๋ฑ์ค๊ฐ ์ผ์นํ๋ ์ปจํ
์ด๋์์ --volume- ํ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์
๋๋ค. ์ฌ๋ฌ๋ถ, ์ ๋์ด ๋ฌธ์ ๋ฅผ 2 ๊ฐ์ ๋์๋ณด๊ณ ์์ต๋๋ค. ๋ด๊ฐ ํ ์์๋ ์ต์ ์ docker-machine scp
๋ฅผ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ตฌ์ฑ ํ์ผ์ ํธ์ง ํ ํ docker-compose up
์ด์ ์๋ ์๋ ๋จ๊ณ์
๋๋ค. ๋ํ docker-compose.yml์ ๋ฃจํธ๋ก ๋ผ์ ๋์ ์ปดํจํฐ์ ์ ํํ ๊ฒฝ๋ก๋ฅผ ์์ฑํ ์ ์์ด์ผํฉ๋๋ค (์ฆ, ์ฃผ์ ํดํน ๋์๊ฐ๋ฉ๋๋ค).
์๋ง๋ ๊ณต์ฅ ์์ ๋์ ๋
ธ๋ ฅ์ด ๋์ปค ๋จธ์ ์ ํ์ ์ํค๊ณ ์ฌ์ฉํ ์ค๋น๊ฐ ๋ "์ฌ๋ฐ๋ฅธ"๋ฐ์ดํฐ๋ก ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๋์ด ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๊น? (_ ์์ง ์ด๊ธฐ ๊ฐ๋ฐ ๋จ๊ณ์ด๋ฉฐ ๋จ์ผ setp_0์์ docker-machine
๋ฐ docker-compose
์ (๋ฅผ) ๊ฒฐํฉํ๋ ๋ฐ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
copy
๋ ์๋น์ค ๊ตฌ์ฑ์ ์ผ๋ถ๊ฐ ์๋ ์์
์ด๋ฏ๋ก ์์ฑ ํ์ผ์ ์ํ์ง ์์ต๋๋ค.
Docker 1.9๋ ์ ๋ณผ๋ฅจ API๋ฅผ ์ถ๊ฐํ๊ณ ์์ผ๋ฉฐ ๋ณผ๋ฅจ ๋๋ผ์ด๋ฒ๋ ์ด๋ฏธ ์์ต๋๋ค. ๋ณผ๋ฅจ์์ด๋ฅผ ์ง์ํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฃผ๋ณ์ ํ์ผ์ ๋ณต์ฌํ๋ ค๊ณ ํ์ง ์์ต๋๋ค.
์ ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ํ์ง๋ง ์ง๊ธ์ ์ด๊ฒ์ด ์๊ณก ๋์์ธ๊ณผ ๋ง์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ณต์ฌ๋ ์๋น์ค ๊ตฌ์ฑ์ ์ผ๋ถ๊ฐ ์๋ ์์ ์ด๋ฏ๋ก ์์ฑ ํ์ผ์ ์ํ์ง ์์ต๋๋ค.
๊ตฌ์ฑ ํ์ผ ๋ง ๋ณต์ฌํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น? (๋์ปค ๋ผ๋ก, ๊ทธ๋์ volume_from์ด ์๋ํ์ง ์์ต๋๋ค)
๋๋ ์ ํํ ๋์ผํ ์ํฉ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ์ ์ ์ mysql, nginx, haproxy ๋ฑ ๊ตฌ์ฑ ํ์ผ์ ๋ณต์ฌํ๊ณ ์ถ์ต๋๋ค. ํด๋ฌ์คํฐ๊ฐ ํ๋ก๋์ ์ ์์ผ๋ฉฐ ํ๋์ ๋ณต์ฌ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ์๊ฒฉ์ผ๋ก ๊ตฌ์ฑ์ ๋ณต์ฌํ๋ ๋์
๋งค๋ฒ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ , ๋น๋ํ๊ณ , ๊ฐ์ ธ์์ผํ์ง๋ง, ์๋ฌด๊ฒ๋ ํ์ํ์ง ์์ผ๋ฉฐ ๋ณต์ฌ ๋ช ๋ น๋ง์ผ๋ก๋ ๋ง์ ๋ฐฐํฌ ๋ฐ ๊ฐ๋ฐ ์๊ฐ์ ์ ์ฝ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ ๋ง์ ์ฌ๋๋ค์ด ์ฝ๊ฒ ์คํฌ๋ฆฝํ ํ ์์๋ ๋ฌธ์ ๊ฐ ์๋ค๋ ์ฌ์ค์ ๋งค์ฐ ๋๋์ต๋๋ค. ๋์ปค์ ๋ํด ์๋ชป ์๊ฐํ๊ณ ์์ต๋๊น? ์ด์ ๋ด ์๋ฃจ์ ์ ansible์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ ํ์ผ์ ํธ์คํธ๋ก ๋ณต์ฌ ํ ๋ค์ ํธ์คํธ์์ ํ์ํ ์ปจํ ์ด๋๋ก ๋ณผ๋ฅจ ๋ง์ดํธํ๋ ๊ฒ์ ๋๋ค.
๊ฐ์ ๋ฌธ์ ์ ๋ถ๋ช ํ์ต๋๋ค. N ๊ฐ์ ๋ค๋ฅธ ์๋น์ค์ Dockerfile์ ์ฌ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์์ฒด COPY ๋ช ๋ น์ผ๋ก N ๊ฐ์ ๋ค๋ฅธ Dockerfile์ ์์ฑํ๊ฑฐ๋ ๊ทธ์ ๋ํ ๋ณผ๋ฅจ์ ์์ฑํ๊ณ ์ถ์ง ์์ต๋๋ค.
Btw ๋๋ ํ์ฌ ์์ญ ์ค์ sed ๋ช ๋ น์ ์คํํ์ฌ ํด๊ฒฐํ๊ณ ์์ต๋๋ค-http: //unix.stackexchange.com/questions/112023/how-can-i-replace-a-string-in-a-files
์ต์ ์ ์๋ฃจ์ ์ ์๋์ง๋ง docker-compose๊ฐ ํ์ผ ๋ณต์ฌ๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ์ ์ ๊ณ ๋ คํ์ฌ ์๋ํฉ๋๋ค.
Btw ๋ง์ดํธ ๋ฐ ๋ณต์ฌ๋ ๋ฌผ๋ก ๊ฐ๋ฅํ์ง๋ง ์๋ํ docker-compose ์ ์์ ์๋ฐฐ๋ฉ๋๋ค. ์๋์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ํํ๊ณ ์ถ๋ค๋ฉด docker-compose๋ฅผ ์ฌ์ฉํ์ง ์๊ฒ ์ต๋๊น?
Docker๋ฅผ ๋ ๋ง์ด ํ๊ณ ๋ค์๋ก์ด ๋๊ตฌ์ ๋ง์ ๋ถ๋ถ์ด "hello world"์ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋จ์ผ ๋จธ์ ์ ํ ์ ์ค ์ผ์ด์ค์์ "์ด์ ๊ฐ์ ์ ๋ช ๋ น์ผ๋ก์ด ๋ฉ์ง ๊ฒ์ ์ผ๋ง๋ ๋นจ๋ฆฌ ํ์ ์ํฌ ์ ์๋์ง๋ณด์ธ์" (๋์ปค ๊ตฌ์ฑ ํฌํจ). ๊ทธ ์ด์์ผ๋ก ๋์ด ๊ฐ๋ฉด ์ํฉ์ด ๋งค์ฐ ๋ณต์กํด์ง๊ธฐ ์์ํ๊ณ IMO๊ฐ ์ฝ๊ฐ ๋จ์ด์ ธ์ ๊ธฐ์กด ํ๋ก๋น์ ๋ ๋๊ตฌ๊ฐ ์ ์ ํ๊ฒ ์ฌ์ฉ๋๋ฉด ํ๋ฃจ๋ฅผ ์ ์ฝ ํ ์ ์์ต๋๋ค.
๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ํ๋ ค๋ฉด ๋ฐ๋์ ์กด์ฌํด์ผํ๋ ์์คํ ๋ณ ๋ณผ๋ฅจ, ํ์ผ ๋ฐ ํ ํ๋ฆฟ ๊ตฌ์ฑ ํ์ผ ์ด์์ ๋ Ansible์ ์ฌ์ฉํ์ฌ ๋ฉฑ ๋ฑ์ฑ ๋ฐฉ์์ผ๋ก ์์คํ ์ ์ค์ ํ๋ ๊ฒ์ด ๋งค์ฐ ์ฝ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ง์ง๋ง์ Ansible์ ์ฌ์ฉํ์ฌ docker-compse๋ฅผ ํธ์ถํ๊ฑฐ๋ ๊ตฌ๋ฌธ์ด Docker๊ฐ ๋ช ๊ฐ์ง ์ถ๊ฐ ๋ ๋ณด๋์ค ๊ธฐ๋ฅ์ผ๋ก ๊ตฌ์ฑํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๋๊ฐ์ Ansible docker ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ฃจ๊ฐ ๋๋๋ฉด ์์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ ์คํฌ๋ฆฝํ ํ๊ณ ๋ฉฑ๋ฑํ๋ฉฐ ๊ฐ์ฅ ์ค์ํ ์์ค ์ ์ด์ ์ฒดํฌ์ธ ํ ์ ์์ต๋๋ค.
@dnephin ์์ ์ผ๋ถ ์ฌ๋๋ค์ CP๊ฐ ๊ตฌ์ฑ์ ์ผ๋ถ์ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ ์ํ์ต๋๋ค. CP๋ ๊ตฌ์ฑ์ด ์๋ ์์ ์๋ง ์ฌ์ฉ๋๋ค๋ ๊ฐ์ ์ ๋ค์ ๊ฒํ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์
๊ฐ๋จํ ์๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ ์ฌ๋ฐ๋ฅธ ์์น์ ๊ตฌ์ฑ์ ๋ณต์ฌํ๊ณ ๊ตฌ์ฑ์ด ๋ณต์ฌ ๋ ํ ์ปจํ ์ด๋๋ฅผ ์์ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ํตํด ์ค์ ๊ตฌ์ฑ์ ํฌํจํ์ง ์๊ณ ์ปจํ ์ด๋๊ฐ ์์๋ ๋๋ง ๊ตฌ์ฑ์ ๋ฐฐํฌํ๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
ํ์คํ ๋งค์ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค. ์ง๊ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์๋๋ก postgres ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ /docker-entrypoint-initdb.d
ํด๋์ ์คํฌ๋ฆฝํธ๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ ์ํด ๋ค์ ๋น๋ํ๊ณ ์ถ์ง ์์ต๋๋ค.
์ฌ๊ธฐ์์ ์ ์ ๋ ์ต์ ์ ์ข์ํ๋ ์ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ฅ์ด ๊ตฌํ๋๊ฑฐ๋ ์ฌ๋๋ค์ด ์ข์ํ๋ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ด ๋ฐ๊ฒฌ ๋ ๋๊น์ง์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด์ด ๋ณด์ง ์๊ฒ ์ต๋๊น?
@ctindel์ด ์ธ๊ธ
๋ฌธ์ ๋ฅผ ์ฌ๊ฐ ํ ๊ฒฝ์ฐ +1
์ด๊ธฐ๋ +1ํฉ๋๋ค.
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1.
์ฝ๊ธฐ ์ ์ฉ ๋ณผ๋ฅจ์ ๋ฌธ์ ์ ์ ๋ฌด์์ ๋๊น?
myservice:
image: foo/bar
volume:
- src:dest:ro
@michaelarnauts ๋ ์ด๊ฒ์ ์ฐธ์กฐ
๐ ๋ค์ ์ด๊ธฐ
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1.
๋ค์ ์ด๋ ค๋ฉด +1
๋ค์ ์ด๋ ค๋ฉด +1
๋ค์ ์ด๋ ค๋ฉด +1
๋ค์ ์ด๋ ค๋ฉด +1
๋ค์ ์ด๋ ค๋ฉด +1
๋ค์ ์ด๋ ค๋ฉด +1
Compose์์ ์ฌ๋ณธ์ ํ์ฉํ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ง์ ์ปจํ ์ด๋์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ๋ ผ์์ ์ํด ๋ชจ๋ Apache๋ฅผ ์คํํ๋ค๊ณ ๊ท์ ํฉ์๋ค. ๊ทธ๋ค์ ๋ชจ๋ "/ var / www / partX"์ ๊ฐ์ ๊ฒ์ ๊ฐ๋ฆฌํค๋ DocumentRoot ์ ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. Dockerfile์ Apache ๊ตฌ์ฑ์ ๋ด์ฉ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๊ณ Compose๋ / var / www / partX์ ๋ํ ๋ณผ๋ฅจ ์ฐธ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ปจํ ์ด๋ ๋ด์ฉ์ ์์ ํ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ๊ณ ์์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ ์ ํฉํฉ๋๋ค.
๋ฌธ์ ๋ ๋ด๊ฐ ๋ฐฐํฌํ๊ณ ์ถ์ ๋์ ๋๋ค. Docker์ ์ฃผ์ ๋งค๋ ฅ ์ค ํ๋๋ ์์ฒด ์ฐ์ฃผ์ธ ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ปจํ ์ด๋์์๋ ๋ชจ๋ ๊ฒ์ ๊ฐ์ ธ ์ค๋ ค๋ฉด ํ์ผ์ ๋ณต์ฌํด์ผํฉ๋๋ค. ์ฆ, ๊ฐ๋ฐ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ณ๋์ Dockerfile ๋ฐ Compose ์ ์๊ฐ ์์ด์ผํฉ๋๋ค. ๋๊ท๋ชจ ํ๋ก์ ํธ์์๋ ๋ ์ธํธ์ ์ ์ ํ์ผ์ ์ ์งํด์ผํ๋ฏ๋ก ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ด ๋ ์ปค์ง๋๋ค.
๋ด๊ฐ ์ ํธํ๋ ๊ฒ์ ๋จ์ผ Dockerfile ์ธํธ๋ฅผ ์ ์งํ๊ณ Compose ํ์ผ์์ ์ค์ผ์คํธ๋ ์ด์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค. Compose๋ / var / www / partX๋ฅผ ๊ณต์ ๋ณผ๋ฅจ์ผ๋ก ์ค์ ํ ๊ฒ์ธ์ง ๋๋ ํ์ผ์ ์ปจํ ์ด๋์ ๋ณต์ฌ ํ ๊ฒ์ธ์ง ์ ์ํ๋ ๊ณณ์ ๋๋ค.
๊ณต์ ๋ณผ๋ฅจ์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ ์์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ณต์ ๋ณผ๋ฅจ์ ์์กดํ๋ ํ๋ก๋์ ์์ ๊ธฐ์กด ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ ์ ์ง ๊ด๋ฆฌ ๊ธฐ๊ฐ์ ์ค์ ํ๊ฑฐ๋ ๊ณต์ ๋ณผ๋ฅจ์ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ๋ง๋ จํ์ง ์๊ณ ๋ ํด๋น ๊ณต์ ๋ณผ๋ฅจ์ ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๋ค. ์ปจํ ์ด๋๋ฅผ ์ธ๋ถ ํ์ผ๊ณผ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉํ๊ณ ์์ผ๋ฉฐ ์ด๋ฌํ ์ ํ์ ๋ณต์ก์ฑ์ ๋์ ํ๋ ๊ฒฝ์ฐ Docker ์ฌ์ฉ์ ์ด์ ์ค ์ผ๋ถ๋ฅผ ๋ฌดํจํํฉ๋๋ค.
์กฐ๊ฑด๋ถ๋ก ํ์ผ์ ๋ณต์ฌํ๊ธฐ ์ํด Dockerfile ์ ์์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑํ ์์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง Docker ์ ๋๋ฒ์ค์์ ๋ชจ๋ Docker ๋ ผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ "๋ ผ๋ฆฌ์ "์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ Compose๋์ด๋ฅผ ์ํํ๋ ๋ ผ๋ฆฌ์ ์ฅ์์ฒ๋ผ ๋ณด์ ๋๋ค.
๋ค์ ์ด๋ ค๋ฉด +1.
+1. Dockerfile
๋์ docker-compose.yml
ํ์ผ์ ๊ตฌ์ฑ ํ์ผ์ ๋ณต์ฌํ๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
+1. ์๋น์ค์ ๋ํ ๊ตฌ์ฑ ํ์ผ์ ์ ๊ณตํ๋ ค๊ณ ์๋ํ์ต๋๋ค. ์ฝ๊ธฐ ์ ์ฉ ๋ณผ๋ฅจ์ ์ต์ ์ฒ๋ผ ๋ณด์ด์ง๋ง ์คํ๋ ค ๋ณต์ฌํฉ๋๋ค.
๋จ์ํ ๋ณผ๋ฅจ์ ๋ง์ดํธํ๋ฉด ํธ๋ฆญ์ ์ํ ํ ์ ์์ต๋๋ค.
version: '2'
services:
foobar:
image: 'postgres:9.6-alpine'
volumes:
- './docker/schemas/foobar:/docker-entrypoint-initdb.d'
@raszi-์ , ๋ง์ดํธ ๋ ๊ตฌ์ฑ์ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ๊ฐ ๋ฐฉํฅ์ ๋๋ค. Docker์ ๋ํด ์ ๋ง ๋ง์์ ๋ค์๋ ์ ์ค ํ๋๋ ์ธ๋ถ ์ข ์์ฑ (์ : ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ)์ ๋ํ ๊ฑฑ์ ์์ด ํตํฉ ํ ์คํธ๋ฅผ ์คํํ ์์๋ ์์ฒด ํฌํจ ๋ ์ปจํ ์ด๋ ๊ฐ๋ ์ด์์ต๋๋ค. ๋ธ๋ฃจ / ๊ทธ๋ฆฐ ๋๋ A / B ๋ฐฐํฌ๋ฅผ ์ํํ๊ณ ์๊ณ ๋ค๋ฅธ ๋ฒ์ ์ ์ปจํ ์ด๋์์ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์ ์ฐจ์ด๊ฐ ์์ผ๋ฉด ์ํฉ์ด ์ฝ๊ฐ ์ทจ์ฝํด์ง ์ ์์ต๋๋ค. ๊ฐ ํ๊ฒฝ์ ๊ณต์ ๋ณผ๋ฅจ์์ ๊ตฌ์ฑ ํ์ผ์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๋ฑ์ ์์ ์ ์ํํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง ๊ทธ๋ด ์์๋ ๊ฒ๋ณด๋ค ๋ ๋ณต์กํ๊ฑฐ๋ ๊นจ์ง๊ธฐ ์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค.
"Docker ์ปจํ ์ด๋๋ ์ฝ๋, ๋ฐํ์, ์์คํ ๋๊ตฌ, ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (์๋ฒ์ ์ค์นํ ์์๋ ๋ชจ๋ ๊ฒ) ๋ฅผ ํฌํจํ๋ ์์ ํ ํ์ผ ์์คํ ์ ์ํํธ์จ์ด๋ฅผ ๋ํํฉ๋๋ค. ์ด๋ ์ํํธ์จ์ด๊ฐ ํญ์ ๋์ผํ๊ฒ ์คํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ํ๊ฒฝ์. " ๋์๊ฒ ์ด์์ ์ผ๋ก๋ ๊ตฌ์ฑ์ด ํฌํจ๋ฉ๋๋ค. Compose๋ ์ผ์ข ์ "๋น๋ / ์ปดํ์ผ ๋ฐ ์คํ"์ ์ํํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ Compose๊ฐ "๋น๋ / ์ปดํ์ผ, ๋งํฌ ๋ฐ ์คํ"์ ์ํ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๊ฒ์ด ์ค๋๋ ์๋ํ๋ ๋ฐฉ์์ด ์๋๋ฉฐ ๊ทธ ๊ธธ์๊ฐ๋ ๊ฒ์ ๋ํ ์ด์ ์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์ ์ดํดํ ์ ์์ง๋ง, ์ด๊ฑด ํฌ๋ผ์ ๋๋ค. ๋ฌผ์ด ๋ณด๋ ๊ฒ๋ ์ํ์ง ์์ต๋๋ค.)
๋์ํฉ๋๋ค.์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ๋๊ธฐ ์ํด ๋ด ์๋ฃจ์ ์ ๊ฒ์ํ์ต๋๋ค.
๋ค์ ์ด๋ ค๋ฉด +1.
+1
๋ค์ ์ด๊ฑฐ ๋ ๋ณผ๋ฅจ์ด์๋ ๋ค๋ฅธ ์๋ฃจ์ ์ ๊ฒฝ์ฐ +1.
ํ์ฌ ์ปจํ ์ด๋์ ๊ธฐ๋ณธ ์ฑ์ ์คํํ๊ธฐ ์ ์ ๊ตฌ์ฑ ํ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ํด docker-compose.yml ๋ฐ j2์ ํ๊ฒฝ ๋ณ์๋ฅผ docker-entrypoint.sh์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๋ฅผ ์ํด ์๋ํ์ง๋ง ์ฌ์ฉ์ ์ง์ ์ด๋ฏธ์ง์ด๋ฉฐ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฒด ์ด๋ฏธ์ง๋ก ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
+1
+1
+1
+1
+1
+1
+1
+1
+1
๋ค์ ์ด๋ ค๋ฉด +1
ํ๊ฒฝ ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ตฌ์ฑ ๋์ ๊ฐ ์ปจํ ์ด๋์ ๋ํด ๋ค๋ฅธ yaml ํ์ผ์ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ ์ถ๊ฐํ๋ ค๋ฉด
+1 ๋งค์ฐ ํ์ํ ๊ธฐ๋ฅ
+1, ๊ธฐ๋ฅ์ด์์ด์ ๊ธฐ์ฉ๋๋ค!
+1
+1
+1
+1
+1 ์ฌ๊ฐ. ๋ถ๋งํฌ ๋จ
+1 ์ด๊ฒ์ ๋งค์ฐ ํ์ํ ๊ธฐ๋ฅ์ ๋๋ค.
๊ณต์ ๋ณผ๋ฅจ์ ๊ณ์ธต์ผ๋ก ํ์ ํ ์์๋ ๋ฐฉ๋ฒ์ด์์ด์ ๋ณผ๋ฅจ์ RO๋ก ๋จ์ ์์ง๋ง ๋งจ ์์์๋ ๊ณ์ธต์ ์ฐ๊ธฐ๊ฐ ์ ์ฉ๋๋ฉด copy
์ง์๋ฌธ ์์ด๋ ํ๋ณตํ๊ฒ ์ด ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด ์ถ์ถ ๋ ๋น๋ ์ํฐํฉํธ๋ฅผ ๊ณต์ ํ๊ณ ์ถ์ง๋ง ์๋น์ค๋ ํด๋น ๋๋ ํ ๋ฆฌ (๋ก๊ทธ ๋๋ PID ํ์ผ ๋ฑ)์ ๊ธฐ๋กํฉ๋๋ค.
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1 ๋งค์ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ด๋ฏ๋ก ๋ค์ ์ด๊ธฐ
https://github.com/jwilder/dockerize ์ ํ ํ๋ฆฟ ๊ธฐ๋ฅ์ด ๋์์ด ๋ ์ ์์ต๋๋ค.
+1
+1
+1
+1
+1
๋ฌธ์ ๋ฅผ ๋ค์ ์ด๋ ค๋ฉด +1
+1
Docker ๋น๋ฐ์ ์ฌ์ฉํฉ๋๋ค.์ด ์์ ์์๋ ๋น๋ฐ์ด nginx ์ด๋ฏธ์ง์ ํจ๊ป ์ฌ์ฉ๋์ด ์๋ฒ ์ธ์ฆ์ ๋ฐ ๊ตฌ์ฑ ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.
https://docs.docker.com/engine/swarm/secrets/#intermediate -example-use-secrets-with-a-nginx-service
๊ทธ๊ฑด ์ข์ ์ง์ ์ด์ผ. ์์งํ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋น๋ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋น๋ฐ์ ์ด๋ค๋ฉด์์ ๋น์ ์ด ๋ณต์ฌ ํ ํน์ ์ ํ์ ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋ณต์ฌ๋ณธ์ ๊ฐ์ ธ์ผํฉ๋๋ค. ์ฆ, ๊ตฌ์ฑ ํ์ผ์ ํ์ํ์ง ์์๋ณด๋ค ์ ์คํ๊ฒ ํ๋ก๋น์ ๋ ๋ ๊ฒ์ ๋๋ค.
ํฌํจํ๋ ค๋ ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ์ ๋ํด ํธ์คํธ ๋ง์ดํธ ๋ณผ๋ฅจ์ ๋ฅ๊ฐํฉ๋๋ค.
๋ณต์ฌ๊ฐ ๋ ์ข์ ์ด์ ๋ a) ํธ์คํธ๊ฐ ์ค์ ๋ก ๋ณ๋์ ์์คํ ์ธ ์ค์ ํ๊ฒฝ์์ ๋ชจ๋ ์์คํ ์ ๋์ผํ ์์น์ ์ ํํ ๋์ผํ ํ์ผ์ ๊ฐ์ง ํ์๋ ์์ต๋๋ค. b) ๋ณต์ฌ๋ compose๊ฐ์๋ ํด๋๋ก ์ ํ ํ ์๋ ์์ง๋ง ํธ์คํธ ๋ง์ดํธ์๋ ์ ๋ ๊ฒฝ๋ก๊ฐ ํ์ํฉ๋๋ค. c) Docker์ ์์ ์ ํฌํจ ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ํธ์คํธ์ ์นจ์ ํ๋ ์์น์ ์๋ฅผ ์ต์ํ ํ๋ ๊ฒ์ ๋๋ค. ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์๋ ํธ์คํธ ๋ง์ดํธ๋ ํธ์คํธ์ ํ์ผ์ ๋ณด์ ํ๊ณ ๋ณด์กด ํ ์ฑ ์์ ์์ฑํฉ๋๋ค. ์ด ๊ฐ๋จํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํธ์คํธ ๋ง์ดํธ๋ฅผ ์ฌ์ฉํ ํ์๋ ์์ต๋๋ค.
๋ณต์ฌ๋ docker build
ํ๋ก์ธ์ค์ ์ ์ฌํ๊ฒ ๋ชจ๋ธ๋ง ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์ Dockerfile
๋ ์ผ๋ฐ์ ์ผ๋ก ๋น๋ ์ปจํ
์คํธ๋ก ๋ณด๋ด๋ ๋ฐ ํ์ํ ๋ชจ๋ ํ์ผ๊ณผ ํจ๊ป git ์ ์ฅ์๋ก ์ ๊ณต๋ฉ๋๋ค. Dockerfile
์ (๋) ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ๋ณผ๋ฆญ ๋งํฌ ๋ ๊ฒฝ์ฐ์๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์ธ๋ถ์ ์กด์ฌํ๋ ๊ฒ์ ๋ณด๋ผ ์ ์์ต๋๋ค. src
๋ docker-compose.yml
์ ๋๋ ํ ๋ฆฌ (๋ฐ ๊ทธ ์๋์์๋ ๊ฒ)๋ก ์ ํ๋๋ compose์ ๋น์ทํ ๊ฒ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ํฌ ํ๋ก๋ docker-compose
๊ฐ ์ปจํ
์ด๋๋ฅผ ๋ง๋ ๋ค์ ๋ชจ๋ src:dst
์์ ๋ํด ํ์ฌ ๋๋ ํฐ๋ฆฌ์์ src
๋ฅผ ์ฐพ์ ์์๋์ง ์์ ์ปจํ
์ด๋์ ๋ณต์ฌํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ปจํ
์ด๋๋ฅผ ์์ํ์ญ์์ค.
ํ์ฌ ํธ์คํธ ๋ง์ดํธ๋ฅผ ํผํ๋ ค๋ฉด Dockerfiles
์ ์ถ๊ฐํ๊ณ conf
ํ์ผ์ ์์ ๋ ์ด๋ฏธ์ง๋ก ๋น๋ํ์ฌ ์ํ ํ ์ ์์ง๋ง ์ ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ๋ค์ ์ง์ ํ๊ฑฐ๋ ์ฌ์ฉ์๋ฅผ ๊ฐ์ ํ๋ ์์
์ด ํฌํจ๋๋ฏ๋ก ๊ณผ๋ํ๊ฒ ๋๊ปด์ง๋๋ค. ๋ ๋ฐ๋์งํ (IMO) image
์์ฑ ๋์ docker-compose
build
์์ฑ์ ์ฌ์ฉํฉ๋๋ค. ์๋น์ค ์ ์์์ ์ด๋ฏธ build
์์ฑ์ ์ฌ์ฉํ๊ณ ์๊ณ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์
์ ์ํํ๋ ค๋ ๊ฒฝ์ฐ compose์๋ง ์ํด์ผํ๋ ๊ณ ๋๋ก ๋
๋จ์ ์ธ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ๋
๋ฆฝ์ ์ธ ์ด๋ฏธ์ง ๋น๋๋ฅผ ์ค์ผ์์ผ์ผํฉ๋๋ค. ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค.
๋์ปค ์์ฑ ๋ณต์ฌ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ +1
+1
+1
+1
์ฌ๋ณธ์ +1.
๋์ปค ์์ฑ ๋ณต์ฌ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ +1. ์์์ ์ฐฌ์ฑํ๋ ์ฃผ์ฅ์ด ์ค๋๋ ฅ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๋ณธ์ +1
์ฌ๋ณธ์ +1.
๋ด POV์ ์์ง๋ง. ํธ๋ฆฌ ํ ์ โโ์์ง๋ง ์ ์ด ํ ์ ์๊ฑฐ๋ ๋ง์ ์ฌ์ฉ์์๊ฒ ๋จ์ฉ ๋ ์ ์์ผ๋ฉฐ ๋ณผ๋ฅจ์ ์ธ๋ชจ ์๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค. ํนํ swarm์ ์ํด ์ปจํ ์ด๋์ ํ์ผ์ ๋ฃ์ ํ์๊ฐ ์๋ค๋ฉด ๊ตฌ์ฑ ๋๋ ๋น๋ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํด๋๋ฅผ nginx ์ปจํ ์ด๋์ ๋ฃ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ Dockerfile์์ ๋ค๋จ๊ณ ๋น๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ ์ ๋ง์ ํ๋ก์ธ์ค๊ฐ ํ์ํ ์ปจํ ์ด๋์ ์ ์ ํด๋๋ฅผ ๋ฃ์ด์ผํฉ๋๋ค. ๊ทธ๋์ ๋ณต์ฌ ์ต์ ์ ์ถ๊ฐํ๋ฉด
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
๋ค์ ์ด๋ ค๋ฉด +1
+1
๋ค์ ์ด๋ ค๋ฉด +1
์ปจํ
์ด๋ (๋๋ ์์ฒด)๊ฐ ํน์ ์ํ ์์
์ ๋๋ฌ ํ ํ ๋ณผ๋ฅจ์์ ์๋ํ๋ ๊ธฐ๋ฅ์ด ์๋๊น์?
์ฝ๊ธฐ ์ ์ฉ๊ณผ ๊ฐ์ ํ๋๊ทธ ์ผ ์ ์์ง๋ง ๋์ ๋ณต์ฌ ์ ์ฉ์
๋๋ค! ๊ทธ๋ฐ ๋ค์ ์ปจํ
์ด๋ ๋ด๋ถ์์ ๋๊ธฐํ ์ํ์ ๋๋ฌ ํ ํ ๋งํฌ๋ฅผ โโ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ ๋ ์ผ๋ฐ ๋ณผ๋ฅจ ์์
ํ์ดํ ๋ผ์ธ / ๊ตฌ๋ฌธ์ ๊ฐ๊ฒ๋ฉ๋๋ค.
๋ค์ ์ด๋ ค๋ฉด +1. ๋ณผ๋ฅจ ๋ง์ดํธ๋ ํญ์ ์ต์ ์ด ์๋๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ค๋ ์ฌ๊ธฐ์ ๊ฒ์ํ๋ ์ด์ ์ ๋๋ค. ๋ณผ๋ฅจ ํ์ฌ๊ฐ ๊ธ์ง ๋ ๊ณ ์ ํ ์๋๋ฆฌ์ค๋ก ์ธํด ํ์ผ์ ๋ณต์ฌํ๊ธฐ ์ํด ๋ง์ ์์ ์ปจํ ์ด๋๋ฅผ ์ง์ ์์ ํด์ผํฉ๋๋ค.
+!
+1
๋์ปค ์์ฑ ๋ณต์ฌ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ +1
+1
+1
๋๋ ์ด๊ฒ์ด ๋ฌด์๋ฏธํ๋ค๊ณ ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. Docker๋ Docker๋ฅผ ๊ตฌ์ถ ํ ํน์ ์ฌ์ฉ ์ฌ๋ก ์ฃผ๋ณ์๋ง ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ ์ฌ๋ก ์ธ๋ถ์ ๊ธฐ๋ฅ ์ค ํ๋์ด๋ฏ๋ก ์ถ๊ฐํ์ง ์์ ๊ฒ์ ๋๋ค.
+1
@stuaxo ๋ง์ ์ฌ๋๋ค์ด ํ๊ฑด์ ์๊ตฌํ๊ณ
์ด ๊ฒฝ์ฐ, ์คํํ๊ธฐ ์ํด ์๋น์ค์ ํ์ํ ํ์ผ์ ๋น๋์ ๊ตฌ์ ์ง๊ฑฐ๋ (Dockerfile์ ์ ์ธ ๋จ) ๋ณผ๋ฅจ์ ํตํด ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ฑฐ๋ ( docker stack
/ Swarm ๋ชจ๋์ ๊ฒฝ์ฐ) config๋ก ์กด์ฌํด์ผํฉ๋๋ค. ๋๋ ๋น๋ฐ ๊ฐ์ฒด. ๋ฐํ์์ ์ ์ฌ์ ์ผ๋ก ์ฌ๋ฌ ๋์์ผ๋ก ํ์ผ์ ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ฆฌ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ฐ ๋ฉฐ ์คํจํ์ง ์์ต๋๋ค.
๊ฑด๋ฐฐ, ๊ทธ๊ฒ ์ฌ์ ๊ถ์ ๊ฒฝ์ฐ ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
"์๋น์ค ์คํ"์ด๋ผ๊ณ ๋งํ๋ฉด ์น ์๋น์ค์ ๊ฐ์ด ์ค๋ ์คํ๋๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ์๊ฐํฉ๋๋ค. Docker๋์ด๋ฅผ ์ ๋ค๋ฃจ์์ต๋๋ค.
Dockers ๊ณ์ธตํ ๋ฐ ์บ์ฑ์ ๋ค๋ฅธ ์์ ์ ํธ๋ฆฌํฉ๋๋ค.
์ด์ WordPress ๋ธ๋ก๊ทธ๋ฅผ docker์ ๋ฃ์์ง๋ง ๋๋ก๋ ๋ช ๋ถ ๋์ ๋ง ์คํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๊ฑฐ๋ ๊ฒ์๋ฌผ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ Docker compose๋ฅผ ์ฌ์ฉํ์ฌ MySQL๊ณผ Apache๋ฅผ ๋ถ๋ฆฌํ๋ ๋ฐ ์ฝ๊ฐ์ ์์ ์ด ํ์ํ์ง๋ง ๋ชจ๋๊ฐ ํจ๊ป ์ค๋ฌด๋ฉ๋๋ ๊ณณ์ ์๊ด ์์ต๋๋ค.
Dockers ์บ์ฑ์ Cairo์ ๊ฐ์ ๋ฐ์คํฌํฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ์คํ์ ํ ๋ ์ฌ๋ฏธ ์์ต๋๋ค. ๋ด๊ฐํ๋ ค๊ณ ํ๋ ๋๋ถ๋ถ์ ์์ ์ ์ธ๋ถ ์ฌํญ์ ์์์ง๋ง ์๋น์ค ์คํ๊ณผ ๊ด๋ จ๋ ๊ฒ๋ณด๋ค ๊ฑด๋ฌผ์ ๋ฌด์ธ๊ฐ ์ธก๋ฉด์ ๋ ๊ฐ๊น์ต๋๋ค.
+1 docker-compose ์ฌ๋ณธ์ ์ถ๊ฐํด์ผํฉ๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ํ๋ฆ๊ณผ ์ปจํ ์ด๋ ์ ๋ฐ์ดํธ๊ฐ ํจ์ฌ ์ฌ์์ง๋๋ค.
docker cp ๋ฐ docker config ์ฌ์ฉ
2018 ๋ 3 ์ 2 ์ผ ๊ธ์์ผ 21:19 James Hahn [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
+1 docker-compose ์ฌ๋ณธ์ ์ถ๊ฐํด์ผํฉ๋๋ค. ํจ์ฌ ๋ ์ฌ์ด ํ๋ฆ์ ํ์ฉํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ ๋ฐ ์ปจํ ์ด๋ ์ ๋ฐ์ดํธ.โ
๋๊ธ์ ๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/docker/compose/issues/1664#issuecomment-370055493 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABOv-q5VO9n9HDvBP6YJ1BCePz5tGu-pks5tabdrgaJpZM4FTTPg
.>
James Mills / prologic
E : [email protected]
W : prologic.shortcircuit.net.au
docker-compose ์ฌ๋ณธ์ ๊ฒฝ์ฐ +1. ์์ด๋์ด๋ ์ฌ๊ธฐ์ ์ค๋ช ๋๋๋ก ํ์ผ์ ๋ํด ๋ณต์ฌ ์ ์ฉ ์ ๊ฐ๋
+1
+1
์ด ๊ฒฝ์ฐ, ์๋น์ค ์คํ์ ํ์ํ ํ์ผ์ ๋น๋์ ๊ตฌ์์ง๊ณ (Dockerfile์ ์ ์ธ ๋จ), ๋ณผ๋ฅจ์ ํตํด ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ฑฐ๋, (๋์ปค ์คํ / Swarm ๋ชจ๋์ ๊ฒฝ์ฐ) ๊ตฌ์ฑ ๋๋ ๋น๋ฐ ๊ฐ์ฒด๋ก ์กด์ฌํด์ผํฉ๋๋ค. ๋ฐํ์์ ์ ์ฌ์ ์ผ๋ก ์ฌ๋ฌ ๋์์ผ๋ก ํ์ผ์ ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ฆฌ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ฐ ๋ฉฐ ์คํจํ์ง ์์ต๋๋ค.
๋ง์ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ๋จ์ผ ๊ตฌ์ฑ ํ์ผ์ ์ ๋ฐ์ดํธํ๋ ๊ฒ๋ฟ์ ๋๋ค.์ด ๊ฒฝ์ฐ ํ์ค ๊ณต์ ์ด๋ฏธ์ง์ ์์ฒด ์ด๋ฏธ์ง๋ฅผ ๊ตฝ๋ ๊ฒ์ ์ข์ง ์์ผ๋ฉฐ ์ถํ์ ๋ง์ ๊ธฐ์ ๋ถ์ฑ๊ฐ ์์ด๊ณ ๋ณผ๋ฅจ์ด ๊ณผ์ X10์ด๋ฉฐ ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ ์์น์์๋ ๋จ์ผ ํ์ผ์ด ์๋ ์ ์ฒด ํด๋๋ฅผ ์ฒ๋ฆฌํด์ผํ๋ ๋ฌธ์ ๋ ๋งํ ๊ฒ๋์๊ณ ํ์ผ์ด ๊ณ์ ๋๊ธฐํ๋๊ธฐ๋ฅผ ์ํ๊ฑฐ๋ ํ์๋กํ๋ฉฐ ๊ตฌ์ฑ ์ค์ ์ ๊ฐ์ ธ ์ค๋ ๊ฒ์ด ์๋๋ผ ์์คํ ํ์ผ ์ ์ ๋ฐ์ดํธํด์ผํฉ๋๋ค.
๋๋ ๋น์ ์ ์ฐ๋ ค๋ฅผ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ ๊ทธ๋ค์ ํ์๊ฐ ์ค์ ๊ฐ ์๋๋ผ๊ณ ๋งํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋น์ ์ ํ๋ก์ ํธ์ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ๋น์ ์ ์์ ์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๋ ์ปค๋ฎค๋ํฐ์์ ์ฌ๋๋ค์ ๋ฉ์ด์ง๊ฒ ํ ๋ฟ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์์ ์ฌ๋ฌ๋ถ๊ณผ ํจ๊ป ์๋ํ๋ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ณ ์ถ์ง๋ง ์ฌ๋ฌ๋ถ์ด ๋งํ๊ณ ์ถ์ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ด ํ์ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค.
์์ฐ, ์์ง ์๋๋ค ๋ ๋ฏฟ์ ์๊ฐ ์๋ค์. ์ด ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ง๊ธ๊น์ง ๋์ปค ์์ฑ์์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์ค, OSS ํ๋ก์ ํธ์ ์๋ฆ๋ค์ ...
docker-compose --force-recreate --rebuild
ํด๊ฒฐํ๋ฉด ์ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ (๋๋ ๊ทธ๋ ๊ฒ ๋ณด์ด๋ ๊ฒฝ์ฐ) ๋ณต์ฌํฉ๋๋ค. ์ด์์ ์ด์ง๋ ์์ง๋ง ์๋ํฉ๋๋ค.
+1
+1
+1
+1
+1 ์ด๊ฒ์ ๋๋ฅผ ๋ฏธ์น๊ฒ ๋ง๋๋ ๋ฎ์ ํค์ ๋๋ค. ํ๋์ ๊ตฌ์ฑ ํ์ผ์ ๋ํด์๋ง ๋ณผ๋ฅจ์ ๋ง์ดํธํด์ผํ๋ ๊ฒ์ ์ด๋ฆฌ์์ ๊ฒ ๊ฐ์ต๋๋ค.
+1
docker compose with volume์ ์ฌ์ฉํ์ฌ ์ปจํ
์ด๋์ ํ์ผ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด์ Compose ๋ฌธ์์ configs
์ค์ ์ด ์์ผ๋ฏ๋ก ๋จ์ผ ํ์ผ๋ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
https://docs.docker.com/compose/compose-file/#configs
๊ทธ๋ฌ๋ ์ฌ๋๋ค์ด ์ํ๋ ๊ฒ์ ํธ์คํธ์ ํ์ผ์ ์ปจํ
์ด๋์ ๋๋ ํฐ๋ฆฌ๋ก ๋ณํฉํ๋ ๋ฐฉ๋ฒ์ด๋ฉฐ, ๋ณต์ฌ๋ณธ์ด ์๋ ํ ๊ฒ์ผ๋ก ์์ํ๋ ๋ฐฉ์ ์ธ overwrite if exists
๋ฅผ ์ ํธํฉ๋๋ค.
compose ํ์ผ์ volumes
๊ตฌ์ฑ์ nocopy
์ต์
์ด ์๋ค๋ ๊ฒ์ด ์ด์ํฉ๋๋ค.
https://docs.docker.com/compose/compose-file/#volumes
volumes:
- type: volume
source: mydata
target: /data
volume:
nocopy: true
๋ค์๊ณผ ๊ฐ์ด ์ค๋ช
๋ฉ๋๋ค.
volume: configure additional volume options
nocopy: flag to disable copying of data from a container when a volume is created
๊ทธ๋์ ์ ํํ ์ํ๋ ๊ฒ์ ๋นํ์ฑํํฉ๋๊น?
๋ด๊ฐ ์ํ๋ ์ฌ์ฉ ์ฌ๋ก๋ ๊ฐ๋ฐ ์ฉ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์ด๋ฏธ์ง์ ๊ธฐ๋ณธ ์น ์ฌ์ดํธ๋ฅผ ํฌํจํ์ฌ ์น ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋๊ธฐ๋ฅผ ์ํ์ง๋ง ํ์ผ์ ํฌํจํ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๊ตฌ์ฑ (ํค)์์ด ์น ์ฌ์ดํธ์ ํ์ฌ ์์ ์ํ๋ก ํด๋น ํ์ผ์ ๋ณํฉ / ๋ฎ์ด ์ธ ์์๋ ์ต์ ์ด ์์ต๋๋ค. ํธ์คํธ์ ์ฌ๋ฐ๋ฅธ ์์น. ์ปจํ ์ด๋์ ๋ณต์ฌ ํ ๋ ์์ ํ์ผ ์ธ ํ์ผ์ ๋๋ค. ๋คํธ์ํฌ ๊ณต์ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์ด์ ์ ์ป์ ์์๋ ํ๋ ์ ์ํฌ์ ์๋ Laravel๊ณผ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ๊ตฌ์ฑ (๋ณผ๋ฅจ, ๋คํธ์ํฌ ๊ณต์ ๋ฑ)์์ด Laravel ์คํ๋์ ํ์ด์ง๋ฅผ ์ ๊ณต ํ ์์๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์์ง ๋ง compose ํ์ผ์ ํธ์คํธ์์ ์ปจํ ์ด๋์ Laravel ๋ฃจํธ๋ก ํ์ผ์ ๋ณต์ฌํ๋๋ก ์์ฑ๋์ด ์์ต๋๋ค. ๋ฎ์ด ์๋๋ค.
์ด๋ฅผ ์ํด ๋คํธ์ํฌ ๊ณต์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์ ํ๊ฒฝ์ ๋ํ ์ถ๊ฐ ์ ์ง์ ๋๋ค (๊ฐ๋ฐ์ด ํญ์ ์ผ์ ํ์ง๋ ์์). Laravel๊ณผ ๊ฐ์ ํ๋ ์ ์ํฌ์ ํจ๊ป ๋ณผ๋ฅจ ๋ง์ดํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํด๋น ๋ณผ๋ฅจ์ ์ฑ์ ๋น๋ํด์ผํฉ๋๋ค. ์ฆ, ํธ์คํธ์ PHP ๋ฐ ์๊ณก๊ฐ๋ฅผ ์ค์นํ๊ฑฐ๋ ์ฑ์ด ์์ฑ ๋ ํธ์คํธ์์ ์์น๋ฅผ ๊ณต์ ํด์ผํฉ๋๋ค. ๋ ๋ค ๋ ๋ง์ ์ ์ง ๋ณด์๋ฅผ ์์ฑํฉ๋๋ค.
ํธ์งํ๋ค:
ํ ์คํธ ํ ๋ณผ๋ฅจ์ ๋ง์ดํธํ๋ฉด ํด๋น ์์น์ ์ด๋ฏธ์ง์ ์๋ ํ์ผ์ด ๋ณผ๋ฅจ์ ์๋ ๋ด์ฉ๋ณด๋ค ์ฐ์ ํ์ฌ ์๊ตฌ ๋ณผ๋ฅจ์ ๋ณต์ฌ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฎ์ด ์ฐ์ง ์์์ ์๋ฏธํฉ๋๋ค.
์ค์ ๋ก ์ด๊ฒ์ด ์ํ๋ ๊ฒฐ๊ณผ์ ๋ํ ํด๊ฒฐ์ฑ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ด, ์ฌ๋ฌ๋ถ, ์ฐธ๊ณ ๋ก, "+1"์ฝ๋ฉํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค์ด ์ด์์ ๋ํ ์ต๊ณ ๋ฉ์์ง์ ์์ง ์๊ฐ๋ฝ์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด์๋๋ฐ์ ๋ฐ์ ์์ ๋ฐ๋ผ ๋ถ๋ฅ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
+1
+1 Docker ํ, ๊ทํ์ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
@ shin- ์ง๊ธ ๋ฌธ์ ๋ ๋ณผ๋ฅจ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ธ๋ถ ๋ณผ๋ฅจ์ ๋จ์ผ ๊ตฌ์ฑ ํ์ผ์ ์ปจํ ์ด๋์ ์ฐ๊ฒฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
nginx ๊ตฌ์ฑ ํ์ผ์ /etc/something/whatever.conf
์ ์ฐ๊ฒฐํ๊ณ ํด๋น ํด๋์์๋ ๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ฑฐํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋จ์ผ ํ์ผ์ ๋ํด ๋ช
๋ช
๋ ๋ณผ๋ฅจ์ ์์ฑ ํ ์ ์์ผ๋ฉฐ (moby / moby # 30310 ์ฐธ์กฐ) ๋จ์ผ ํ์ผ์ ํฌํจํ๋ ๋๋ ํ ๋ฆฌ ๋ณผ๋ฅจ์ ์์ฑ ํ ๋ค์ ํด๋น ํน์ ํ์ผ์ ์ปจํ
์ด๋์ ๋ง์ดํธ ํ ์๋ ์์ต๋๋ค (moby / moby # ์ฐธ์กฐ). 32582).
๋จ์ ์ ์ผํ ์ต์ ์ ๊ตฌ์ฑ ํ์ผ๋ก ์ค์ Docker ํธ์คํธ์ ๊ณ ์ ์์น๋ฅผ ์ค์ผ์ํจ ๋ค์ ๋ง์ดํธ๋ฅผ ๋ฐ์ธ๋ํ๋ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก Docker ํธ์คํธ ์ฌ์ด๋ฅผ ์ด๋ํ๊ฑฐ๋ Docker์ ํจ๊ป ์์ ํ๋ ค๋ ๊ฒฝ์ฐ์ด ์์ ์ ์ฐ์ฐ์กฐ๊ฐ์ด๋ฉ๋๋ค. ํ์ผ ์์คํ ์ก์ธ์ค ๊ถํ์ด์๋ ํธ์คํธ (์ : ์จ๋ผ์ธ CI) ๋๋ ๋ณ๋ ฌ๋ก ์ฌ๋ฌ ์คํ์ ์คํํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ฌ๊ธฐ์์ ๋ญ๊ฐ๋ฅผ ํฌ๊ธฐํด์ผํฉ๋๋ค. Docker์ ๋ณผ๋ฅจ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ฌ ์ค์ ๋ก ์คํ์ ๊ตฌ์ฑ ํ์ผ์ ์ฝ์
ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋๋กํ๊ฑฐ๋ copy
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ฌ ์์ฑ์์ด๋ฅผ ํด๊ฒฐํด์ผํฉ๋๋ค
FWIW ์ ๋ ๋ ์ด์ Compose ๋ฉ์ธํ ์ด๋๊ฐ ์๋์ง๋ง Dockerfile์ ์ฌ์ฉํ์ฌ ๋น๋์ ๊ตฌ์ฑ ํ์ผ์ ์ฝ์ ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ์ฌ์ฉ ์ฌ๋ก ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@ shin- ๋ถํํ๋ ๊ตฌ์ฑ ํ์ผ์ ๋น๋ ์์ ์ ์๋ ค์ง์ง ์์์ผ๋ฉฐ ์ด๋ฏธ์ง๋ ๋ฐฐํฌ ํ ์์น์ ๊ตฌ์ฑ์ ์๊ธฐ ํจ์ฌ ์ ์ CI ์๋ฒ์์ ์ค๋น๋ฉ๋๋ค.
์ ๋ @masaeedu๋ฅผ ์ฌ์ฉ ํ๊ณ ์์ต๋๋ค. compose ๊ธฐ๋ฅ์ ํฌ๋ฆฌํ์ผ๋ก๋ถํฐ ์ ์งํ์ฌ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ถ์ง ์๋ค๋ ๊ฐ๋ ์ ์ด์์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ํ์์์ด ๊ธฐ๋ฅ์ ์์ค์ compose์์ด ์ฌ์ฉํ ์์๋ ์ํฉ์ ํฌ๊ฒ ์ค์ ๋๋ค.
A) ๋ฌธ์ ์ ์ปจํ ์ด๋๋ฅผ ์ธ์ฐ๊ธฐ ์ํด ์ผ์ข ์ ๋์ฐํ ์คํฌ๋ฆฝํธ ์์ ์ ํจ๊ป ๋ญ์ณ์ผํฉ๋๋ค (๊ตฌ์ฑํ๋ ๊ฒ์ ํ์คํ๋ฅผ ๋๊ณ ์ฐ๋ฆฌ๊ฐ ํ ํ์๊ฐ ์๋๋กํ๊ธฐ์ํ ๊ฒ์ ๋๋ค).
B) ๋ชจ๋ ๊ตฌ์ฑ์ ์ฒ๋ฆฌํ๋ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ถ๊ฐํด์ผํฉ๋๋ค (์คํ ๊ฐ๋ฅํ์ง๋ง ์ค์ ๋ก ํน์ .conf ๋ฐ .env๋ฅผ ๊ฐ ์ปจํ ์ด๋์ ๋ณต์ฌํด์ผํ๋ ์ค์ ๊ท๋ชจ ํ๋ก์ ํธ์ ์์ฒญ๋ ์์ ์ค๋ฒ ํค๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๋ฏธ์ง ๋น๋์ ์ํํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ฆ, ์ํํธ์จ์ด์ ๊ตฌ์ฑ ํ์ผ์ด์๋ ๋์ ๋ชจ๋ ์ต์ ์ C ++์ ํ๋ ์ฝ๋ฉํด์ผํ๋ฉฐ ์ ์ง ๊ด๋ฆฌํด์ผ ํ ์ถ๊ฐ ์ด๋ฏธ์ง๊ฐ ์์ญ ๊ฐ๊ฐ ํ์ํ๋ค๊ณ ๋งํ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
C) ์ฌ์ํ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ํ์ํ ๋๋ง๋ค ํ์ํ ์ํํธ์จ์ด์ ๋ชจ๋ ๊ฐ๋ฅํ ๊ตฌ์ฑ์ ๋ํด ๋ณ๋์ ์ด๋ฏธ์ง๋ฅผ ์ ์งํด์ผํฉ๋๋ค ./ ์ค์ ํ๊ฒฝ์์๋ ๋ ๋ค ์๋ํ์ง ์์ต๋๋ค. ๋ํ ํ๋ก๋์ ์ํํธ์จ์ด์ ํ์ํ ๊ฐ๋ ฅํ QA ๋ฐ ํ ์คํธ ํ์ดํ ๋ผ์ธ์ ๊ฐ์ง ๋ชปํ๊ฒํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ตฌ์ฑ ํ์ผ ๋ง ๋ณต์ฌํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น? (๋์ปค ๋ผ๋ก, ๊ทธ๋์ volume_from์ด ์๋ํ์ง ์์ต๋๋ค)
๋๋ ์ ํํ ๋์ผํ ์ํฉ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ์ ์ ์ mysql, nginx, haproxy ๋ฑ ๊ตฌ์ฑ ํ์ผ์ ๋ณต์ฌํ๊ณ ์ถ์ต๋๋ค. ํด๋ฌ์คํฐ๊ฐ ํ๋ก๋์ ์ ์์ผ๋ฉฐ ํ๋์ ๋ณต์ฌ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ์๊ฒฉ์ผ๋ก ๊ตฌ์ฑ์ ๋ณต์ฌํ๋ ๋์
๋งค๋ฒ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ , ๋น๋ํ๊ณ , ๊ฐ์ ธ์์ผํ์ง๋ง, ์๋ฌด๊ฒ๋ ํ์ํ์ง ์์ผ๋ฉฐ ๋ณต์ฌ ๋ช ๋ น๋ง์ผ๋ก๋ ๋ง์ ๋ฐฐํฌ ๋ฐ ๊ฐ๋ฐ ์๊ฐ์ ์ ์ฝ ํ ์ ์์ต๋๋ค.