์ข ์ข docker-compose up์ Docker-compose.yml์์ "build :"๋ก ์ง์ ๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ์ง ์์ง๋ง ํด๋น Dockerfile์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋์ docker build -t servicename_foldername์ ์คํํด์ผํฉ๋๋ค. ์ํฅ์๋ฐ๋ ์๋น์ค์ ๋ํด ์๋์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ด๊ฒ์ ์๋ ๋ ๊ฒ์ ๋๊น? ๋ค์ ์ฑ๊ฐ์๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๊ฐ ์ค์ ๋ก ์ต์ ์ํ์ธ์ง ํ์ ํ ์ ์์ผ๋ฉฐ docker-compose up์ ์ฌ์ฉํ๊ธฐ ์ ์ ์๋์ผ๋ก docker ๋น๋๋ฅผ ์คํํด์ผํฉ๋๋ค.
์ฌ์ค, docker-compose up
๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ "์๋ ๋"๊ฒ์ด์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ฐ๊ฟ์ผํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ์
๋๋ค. # 693
docker-compose build
๋ฅผ ์คํํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ ํ ์ ์์ต๋๋ค.
# 614์ ์ค๋ณต
์๋ ํ์ธ์ @dnephin ,์ด ์ผ๋ง๋ ์์ ์ธ์!
docker-compose build
๊ฐ ์ปจํ
์ด๋๋ฅผ ์ ๋๋ก ์ฌ ๊ตฌ์ถํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ค๋๋ ์ ๊ธ ํ์ผ๋ก ์ธํด Varnish ์ปจํ
์ด๋๊ฐ ์์๋์ง ์๋๋กํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ด๊ฐ ๋ค๋ฅธ ๊ณณ์์ ์ฝ์ ๋ด์ฉ (์ : # 1195)์ ๋ฐ๋ฅด๋ฉด docker-compose build
๋ ์ปจํ
์ด๋๋ฅผ ๋ค์ ๋น๋ํ๋ ๋ฐ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ด๋ฉฐ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํด์ผํฉ๋๋ค.
โญโwting<strong i="11">@nuc</strong> ~/code/reddit-mobile โนpython-2.7.12โบ โนwting_chan-159_add_varnish_to_2Xรad20b6dโบ
โฐโโค docker ps 2016.09.15 12:20:46 PDT
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
โญโwting<strong i="12">@nuc</strong> ~/code/reddit-mobile โนpython-2.7.12โบ โนwting_chan-159_add_varnish_to_2Xรad20b6dโบ
โฐโโค docker-compose --version 2016.09.15 12:20:48 PDT
docker-compose version 1.8.0, build f3628c7
โญโwting<strong i="13">@nuc</strong> ~/code/reddit-mobile โนpython-2.7.12โบ โนwting_chan-159_add_varnish_to_2Xรad20b6dโบ
โฐโโค docker --version 2016.09.15 12:20:51 PDT
Docker version 1.12.1, build 23cf638
โญโwting<strong i="14">@nuc</strong> ~/code/reddit-mobile โนpython-2.7.12โบ โนwting_chan-159_add_varnish_to_2Xรad20b6dโบ
โฐโโค docker-compose build && docker-compose up 2 โต 2016.09.15 12:23:35 PDT
Building web
Step 1 : FROM reddit/reddit-nodejs:latest
---> ee57c186eb35
Step 2 : VOLUME /src
---> Using cache
---> 3720601d98c8
Step 3 : WORKDIR /src
---> Using cache
---> d4b9b360ef4e
Step 4 : EXPOSE 4444
---> Using cache
---> 5e232be73781
Step 5 : ENTRYPOINT npm start
---> Using cache
---> 1094fc9857bb
Successfully built 1094fc9857bb
Building varnish
Step 1 : FROM quay.io/reddit/varnish-fastly
# Executing 1 build trigger...
Step 1 : COPY default.vcl /etc/varnish/default.vcl
---> Using cache
---> ac9dadb35674
Step 2 : ENV VARNISH_PORTS 8080
---> Using cache
---> 3c43e0226f5f
Step 3 : EXPOSE 8080
---> Using cache
---> c88093c2ff32
Successfully built c88093c2ff32
Starting redditmobile_web_1
Starting redditmobile_varnish_1
Attaching to redditmobile_web_1, redditmobile_varnish_1
varnish_1 | storage_malloc: max size 100 MB.
varnish_1 | SHMFILE owned by running varnishd master (pid=1) # STALE LOCK FILE
varnish_1 | (Use unique -n arguments if you want multiple instances.)
web_1 |
web_1 | > [email protected] start /src
web_1 | > NODE_ENV=production npm run server
web_1 |
redditmobile_varnish_1 exited with code 2
web_1 |
web_1 | > [email protected] server /src
web_1 | > NODE_ENV=production node ./bin/ProductionServer.js
web_1 |
web_1 | Started cluster with 4 processes.
web_1 | Started server at PID 31
web_1 | Started server at PID 46
[..]
์๋ @wting
๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ ์๋์ง๋ ์ ๊ธ ํ์ผ์ด ๋ณผ๋ฅจ์ ์๋ค๋ ๊ฒ์ ๋๋ค (https://docs.docker.com/compose/overview/#/preserve-volume-data-when-containers-are-created).
docker-compose down
์ (๋ฅผ) ์๋ํ์ฌ ์ด์ ์ปจํ
์ด๋๋ฅผ ์ ๊ฑฐํ๋ฉด ๋ณผ๋ฅจ ์ฐธ์กฐ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ๋ค์ up
์ ์ ๋ณผ๋ฅจ์ผ๋ก ์์ํด์ผํฉ๋๋ค.
๋ณผ๋ฅจ์ ์์ผ๋ฉด ์ ๊ธ ์ฅ์น๊ฐ ์ ๊ฑฐ๋์ง ์์์ ์ ์์ต๋๋ค. Compose๋ ์ปจํ
์ด๋๊ฐ ์๊ณ ๊ตฌ์ฑ์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ปจํ
์ด๋๋ฅผ ์์ํ๋ ค๊ณ ์๋ํ๋ฏ๋ก down
ํ๋ฉด ๋ฌธ์ ๋ ํด๊ฒฐ๋ฉ๋๋ค.
๊ฐ์ฌ! docker-compose down
๋ฐ docker-compose up --force-recreate
( docker-compose --build
์ ์ธ). ์น ์ปจํ
์ด๋ ์ฉ์ผ๋ก ๋ง์ดํธ ๋ ๋ณผ๋ฅจ์ด ์์ง๋ง Varnish ์ปจํ
์ด๋์๋ ๋ง์ดํธ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ง๊ด์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ค ํ์ผ์ ์ฃผ๋ณ์ ๋ถ์ด ์์ต๋๋ค. docker-compose.yml
ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
version: '2'
services:
web:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "4444:4444"
volumes:
- .:/src
varnish:
build:
context: .
dockerfile: Dockerfile.varnish
ports:
- "4301:80"
depends_on:
- web
์ปจํ ์คํธ :
Dockerfile.dev
( VOLUME
์ ๋ฌผ)Dockerfile.varnish
( VOLUME
)reddit/varnish-fastly/Dockerfile
( VOLUME
)๊ฐ์ฌํฉ๋๋ค.์ด ๋ฌธ์ ์ ๋ํด ๊ธ์ ์ด ๋ชจ๋ ์ฌ๋๋ค์ ๊ทํ์ ์๊ฒฌ => "docker-compose up --force-recreate (๊ทธ๋ฌ๋ docker-compose --build๋ ์๋)"์ ์ํด "์ ์ฅ"๋์์ต๋๋ค.
docker-compose up --build
์ฌ์ค,
docker-compose up
๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ "์๋ ๋"๊ฒ์ด์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ฐ๊ฟ์ผํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. # 693
docker-compose build
๋ฅผ ์คํํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ ํ ์ ์์ต๋๋ค.# 614์ ์ค๋ณต
์๋ก์ด Dockerfile์ ํ ๋นํ๊ณ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ๋ค์ ๋น๋ํ๋ ๋ฐ ์ ๋ง ๋์์ด๋์์ต๋๋ค.
์ฐธ๊ณ ๋ก-๋ ผ์ํ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ์ ์์ ์ฌํญ์ด ์์ต๋๋ค. ์ธํฐ ์น์ด ๋๋ฅผ ์ฌ๊ธฐ๋ก ์ด๋์์ต๋๋ค. ์ข์ ํ ๋ก ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
docker-compose up --build -V
-V
๋งค๊ฐ ๋ณ์๊ฐ ๋ฌด์์ธ์ง ๋ช
ํํํ๋ ค๋ฉด :
-V, --renew-anon-volumes Recreate anonymous volumes instead of retrieving data from the previous containers.
docker-compose
์์ ๋จ์ผ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
docker-compose up -d --force-recreate --no-deps --build $service
์ :
docker-compose up -d --force-recreate --no-deps --build varnish
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ์ค,
docker-compose up
๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ "์๋ ๋"๊ฒ์ด์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ฐ๊ฟ์ผํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. # 693docker-compose build
๋ฅผ ์คํํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ ํ ์ ์์ต๋๋ค.# 614์ ์ค๋ณต