Compose: docker-compose ๋นŒ๋“œ์— ์บ์‹œ ์—†์Œ ์˜ต์…˜ ์ถ”๊ฐ€

์— ๋งŒ๋“  2015๋…„ 03์›” 02์ผ  ยท  13์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: docker/compose

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
docker-compose build service1 service2 --no-cache

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ฐฉ๊ธˆ ๊ตฌ๋ฌธ์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.
docker-compose build --no-cache service1 service2

๋ชจ๋“  13 ๋Œ“๊ธ€

๋ฐฉ๊ธˆ ๊ตฌ๋ฌธ์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.
docker-compose build --no-cache service1 service2

๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฐพ๊ณ  ์žˆ์—ˆ๋‹ค !!

๋‹ค์Œ์€ ์ž‘์„ฑ ์Šคํƒ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋Š” ๊น”๋”ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

cd(์ž‘์„ฑ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ)

 docker-compose rm --all &&
 docker-compose pull &&
 docker-compose build --no-cache &&
 docker-compose up -d --force-recreate &&

๋ง์ด ๋ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค :)

+1
--force-recreate๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

+1
--force-recreate ๊ฐ€ ์ตœ์„ ์˜ ์„ ํƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐฉ๊ธˆ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฏ€๋กœ --force-recreate ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„_ ์ง€์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด down ๊ฐ€ rm ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ๊ณผ ๋„คํŠธ์›Œํฌ๋„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

$ docker-compose down -h
Stops containers and removes containers, networks, volumes, and images
created by `up`.

By default, the only things removed are:

- Containers for services defined in the Compose file
- Networks defined in the `networks` section of the Compose file
- The default network, if one is used

Networks and volumes defined as `external` are never removed.

Usage: down [options]

Options:
    --rmi type          Remove images. Type must be one of:
                        'all': Remove all images used by any service.
                        'local': Remove only images that don't have a custom tag
                        set by the `image` field.
    -v, --volumes       Remove named volumes declared in the `volumes` section
                        of the Compose file and anonymous volumes
                        attached to containers.
    --remove-orphans    Remove containers for services not defined in the
                        Compose file

๋‚˜๋Š” ์ด๊ฒƒ์„ 3 ๊ฐœ์›”๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‚ด ์š”๊ตฌ ์‚ฌํ•ญ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Œ: ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ ๋ฐ ์ด๋ฏธ์ง€

        echo && echo "PikWi says: docker-compose stop" && \
    docker-compose stop && \
        echo "PikWi says: docker-compose rm ..." && \
    docker-compose rm -f --all && \    
        echo "PikWi says: docker-compose pull" && \
    docker-compose pull && \
        echo "PikWi says: docker-compose build ..." && \
    docker-compose build --no-cache && \
        echo "PikWi says: docker-compose up ..." && \
    docker-compose up -d --force-recreate --remove-orphans

๋” ์งง๊ฑฐ๋‚˜ ๊นจ๋—ํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋‘ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค์ž…๋‹ˆ๋‹ค :)

๊ฑด๋ฐฐ!

--no-cache๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.... ๋Œ€์•ˆ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ --force-rebuild๋Š” ๊ณ„์†ํ•ด์„œ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค :(

@julianfrank --no-cache does not work ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์•„๋งˆ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
docker-compose build SERVICE_NAME --no-cache
์‹ค์ œ๋กœ docker-compose build --no-cache SERVICE_NAME ์—ฌ์•ผ ํ•  ๋•Œ?

๋นŒ๋“œ๋˜๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์—์„œ ๋‹จ๊ณ„๊ฐ€ ๋™์ผํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ด์ „์— ๋นŒ๋“œํ•œ ์ปจํ…Œ์ด๋„ˆ์˜ ์บ์‹œ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค... ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์บ์‹œ๋ฅผ ๊ฐ•์ œ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ์„ ๋•Œ ๋™์ผํ•œ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์•ˆ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์šฉ๋ฒ•...

์บ์‹œ์— ์˜ํ•ด ๋ง์ณค๊ณ  ๋Œ€์‹  ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋„์ปค ํŒŒ์ผ์— ์ƒˆ ๋ช…๋ น์„ ์‚ฝ์ž…ํ•˜์—ฌ ์บ์‹œ ๋ ˆ์ด์–ด ๊ฐฑ์‹ ์„ ๊ฐ•์ œ๋กœ ์ถ”์ฒœํ•˜๊ณ  ๋„์ปค์˜ ์บ์‹œ ์ฒ˜๋ฆฌ์— ๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค... ๋˜๋Š” ์‹ค์ œ๋กœ ์บ์‹œ ๋ ˆ์ด์–ด๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ž‘์—…

์‹ค์ œ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...
์„œ๋น„์Šค์— ๋Œ€ํ•œ Dockerfile์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ docker-compose build --no-cache ์—๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

docker-compose up -d --build --no-deps web ๋Š” docker-compose.yml์—์„œ "web"์ด๋ผ๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์žฌ๊ตฌ์ถ•์ด ์™„๋ฃŒ๋˜๋ฉด ์ง€์ •๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

--no-deps ๋Š” ๋ช…๋ น์— ์ง€์ •๋œ ์„œ๋น„์Šค ์ด๋ฆ„์œผ๋กœ ์žฌ๊ตฌ์ถ•์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ช…๋ น์€ ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ์— ๋ณต์‚ฌํ•˜๊ณ  ์žˆ๊ณ  ๋ณต์‚ฌํ•œ ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ(์˜ˆ: requirements.txt) ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ
docker-compose up --force-recreate --build

up ๋ช…๋ น์— --no-cache ์˜ต์…˜์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
force-recreate๊ฐ€ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋ฉด ์ €๋ฅผ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค!

๊ทธ๋ž˜์„œ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ...

๋‚˜๋ฅผ ์œ„ํ•œ Ultimate Compose Rebuild ๋ช…๋ น

์ปจํ…Œ์ด๋„ˆ ๋ฐ ์ด๋ฏธ์ง€ ์ œ๊ฑฐ > ๋นŒ๋“œ ์บ์‹œ ์—†์ด ์ด๋ฏธ์ง€ ๋นŒ๋“œ > docker-compose up detached > ๋กœ๊ทธ ์ถ”์ (๋”ฐ๋ผ์„œ ctrl+c ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)

docker-compose build --force-rm --no-cache && docker-compose up --detach && docker-compose logs -f

์œˆ๋„์šฐ:
docker-compose build --force-rm --no-cache ; docker-compose up --detach ; docker-compose logs -f

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰