Compose: ์ด๋ฏธ์ง€๊ฐ€ ๋กœ์ปฌ์— ์žˆ๋Š” ๊ฒฝ์šฐ docker-compose up์€ ์ตœ์‹  ์ด๋ฏธ์ง€๋ฅผ ํ’€๋‹ค์šดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 06์›” 09์ผ  ยท  65์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: docker/compose

docker-compose up ์‹คํ–‰ํ•  ๋•Œ ์ด๋ฏธ์ง€์˜ ์ƒˆ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/docker/docker/issues/4238 ์—์„œ ๋…ผ์˜๋œ ๋Œ€๋กœ docker build --pull ์ด๋ฏธ ์ด ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉฐ --pull ๋ฅผ docker run ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/docker/docker/issues/13331.

--pull ๋ฅผ up ํ•˜์—ฌ ํ•ญ์ƒ ์ž‘์„ฑ ํŒŒ์ผ์—์„œ ์ตœ์‹  ๋ฒ„์ „์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

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

git fetch && git merge origin/master ๊ฐ€ ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— git์— pull ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค.

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

docker-compose pull && docker-compose up ๊ฐ€ ๋น„์‹ค์šฉ์ ์ธ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” --pull ์„ docker run ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฌธ์ œ์—์„œ ๋…ผ์˜ํ•œ ๊ฒƒ๊ณผ ๋Œ€๋ถ€๋ถ„์˜ ์ฐฌ์„ฑ/๋ฐ˜๋Œ€ ํฌ์ธํŠธ๊ฐ€ ๋™์ผํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ux ๋ฐ ์ผ๊ด€์„ฑ, ์Šคํฌ๋ฆฝํŒ…/์›Œํฌํ”Œ๋กœ์˜ ์šฉ์ด์„ฑ, ๋ฌด๋ฆฌ ํ†ตํ•ฉ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค(ํ˜ธ๊ธฐ์‹ฌ์—์„œ docker-compose pull ๋Š” Swarm์—์„œ ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ?).
ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ƒ๊ฐํ•ด ๋ณผ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ด ๊ธฐ๋Šฅ์„ ์›ํ–ˆ๋˜ ๋™์ผํ•œ ์œ ํ˜•์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๊ธฐ์—์„œ๋„ ์ด ๊ธฐ๋Šฅ์„ ์ฆ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"docker-compose build"๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ _--pull_์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” Dockerfile์—์„œ ์ฐธ์กฐํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

_up --build_๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ํ•˜๋Š” ๋™์•ˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ์‹  ์ด๋ฏธ์ง€๋Š” ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "docker-compose up --build --pull"(๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ)๊ณผ ๊ฐ™์€ sth๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ๋นŒ๋“œ๋ฅผ ์ƒˆ๋กœ ๊ณ ์ณ์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ YML์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋กœ์ปฌ ์ด๋ฏธ์ง€ ์ฐธ์กฐ).

cli์— --pull์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹ (๋˜๋Š” ์ถ”๊ฐ€๋กœ) docker-compose ํŒŒ์ผ์˜ ์„œ๋น„์Šค ์ •์˜์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

version: '2'

services:

  postgres:
    image: postgres
    container_name: postgres
    pull: true
    ports:
     - '5432:5432'

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‚ด๊ฐ€ ์ตœ์‹  ์ƒํƒœ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ๊ณ  ๋‚ด๊ฐ€ ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ docker-compose๋Š” ๊ด€์‹ฌ์ด ์—†๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Kubernetes์˜ ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธฐ๋Šฅ์„ ์ฐพ์•„ ์™”์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ๋Š” "imagePullPolicy"์ด๋ฉฐ "IfNotPresent", "Always" ๋˜๋Š” "Never"๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์„ฑ ํ™˜๊ฒฝ๊ณผ ๋น„์Šทํ•œ ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ตœ์‹  ์ข…์†์„ฑ์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋งค์ผ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Docker๊ฐ€ ๋™์ผํ•œ ํƒœ๊ทธ๋กœ ์ตœ์‹  ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์™œ ์•ˆ ๋ผ !

์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”,

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

+1

+1

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด docker-compose pull && docker-compose up ๋Š” ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

git fetch && git merge origin/master ๊ฐ€ ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— git์— pull ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ž‘์„ฑ ํŒŒ์ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€ ์ค‘ ์ผ๋ถ€๊ฐ€ ์บ์‹œ์— ์žˆ๋Š” ๊ฒฝ์šฐ pull: true ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. docker-compose pull ์ž‘์„ฑ ํŒŒ์ผ์˜ _all_ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉฐ ์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€๊ฐ€ ์บ์‹œ์— ์žˆ์ง€๋งŒ ์ €์žฅ์†Œ์—๋Š” ์—†๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

+1

docker-compose pull && docker-compose up ๊ฐ€ ๋น„์‹ค์šฉ์ ์ด ๋˜๋Š” ํ•œ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์—ฌ๋Ÿฌ docker-compose ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. docker-compose -f docker-compose.test.yml pull && docker-compose -f docker-compose.test.yml up ์™€ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ์‰ฝ๊ฒŒ ๋๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ์›๊ฒฉ์—์„œ ์ผ๋ถ€ ์ด๋ฏธ์ง€๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ง€์—์„œ ๊ฐœ๋ฐœ๋œ ๊ฒƒ(๋˜๋Š” ๊ทธ ์ด์ƒ)์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ docker-compose up์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ˆ˜๋™์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ/ํ’€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
pull: true ๊ฐ€ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@shin- ์ด์— ๋Œ€ํ•œ ๊ฒฐ์ •์„ ์žฌ๊ณ ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๋“ค์— ๋Œ€ํ•œ ๋Œ“๊ธ€๊ณผ ๋ฐ˜์‘์ด ์ถฉ๋ถ„ํžˆ ์ž๋ช…ํ•ด ๋ณด์ธ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ, ๋‚œ ๊ดœ์ฐฎ์•„. ์ด๊ฒƒ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์šฐ๋ฆฌ๊ฐ€ ์ทจํ•˜๋Š” ๋ณด์ˆ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋™์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํฌํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker-compose up ๋ช…๋ น์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ตฌ์„ฑ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์ถ”๊ฐ€ ๊ตฌ์„ฑ์ด ์žˆ๋Š” ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋””๋ฒ„๊ทธํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ๋””๋ฒ„๊น…ํ•˜์ง€ ์•Š๊ณ  ๊ฐ„๋‹จํžˆ docker-compose up์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์™„๋ฒฝํ•œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋™๋ฃŒ๊ฐ€ ๋‚ด pull ์š”์ฒญ์„ ํ™•์ธํ•˜๊ณ  ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ๋‹ค๊ณ  ๋งํ•œ ํ›„์— ์‹ค์ œ๋กœ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ณค์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์œ ๋Š” ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ๋ช‡ ๊ฐœ์˜ ํŒจํ‚ค์ง€๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์ง€๋งŒ ์ตœ์ข… Dockerfile์—์„œ ์‹คํ–‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ข‹์€ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ด์ง€๋งŒ ๋ถ„๋ช…ํžˆ ๋‹น์‹ ์ด ์‚ฌ์šฉํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค, @shin- .

์ƒˆ ๋ฒ„์ „์—์„œ ์ด ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๋ฉด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

@ shin- ๋‚ด๊ฐ€ @blockloop์œผ๋กœ ๋ณด์—ฌ ์ฃผ์—ˆ๋‹ค ์ƒ๊ฐ git ํ’€ ์˜ต์…˜์ด ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌ / ์œ ์šฉํ•œ ์˜ˆ. ์†”์งํžˆ ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ์œ„ํ•ด ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋„ ํฌํฌํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ณด์ˆ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜์ง€๋งŒ ๋” ์ด์ƒ ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹ค์Œ ๋ฒ„์ „์˜ ์ผ๋ถ€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

pull: IfNotPresent ์ด๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํด๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1) ๋กœ์ปฌ ์ด๋ฏธ์ง€ ์‚ฌ์šฉ
2) ๋กœ์ปฌ์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๋Œ์–ด์˜ค๊ธฐ
3) ๋‹น๊ธธ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋นŒ๋“œ

@shin- ๊ณ„์† && ๋ฐฉ์‹์ด ์ž˜๋ฆฌ์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ๋ฌผ์œผ์‹œ๋Š”๋ฐ ์ œ ์ด์œ ๋Š” ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์šฉ "์•ฑ" ์ด๋ฏธ์ง€์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(Puppet PDK/Onceover). ์ž‘์„ฑ ํŒŒ์ผ์€ ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ผ๋ถ€์ด๋ฏ€๋กœ ๊ผญ๋‘๊ฐ์‹œ ๊ฐœ๋ฐœ์ž(์‹ค์ œ๋กœ ์šด์˜ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค)๊ฐ€ ์ƒˆ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ถ„๊ธฐํ•ฉ๋‹ˆ๋‹ค. Jenkins๋Š” ํ•ด๋‹น ๋ชจ๋“ˆ ์ €์žฅ์†Œ์—์„œ ๋ณ‘ํ•ฉ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(๋‚ด๋ถ€์ ์œผ๋กœ ์ž‘์—…์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” jenkins ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.) ์ด์ œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋„์ปค ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ฉฐ &&๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์‹œํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์ถ”๊ฐ€์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด (์•„๋งˆ๋„) ๋ง์น  ์ˆ˜ ์žˆ๋Š” ๋‹จ๊ณ„. ์™œ ํž˜๋“ค๊ณ  ์–ด๋–ค ๋ถˆ์ด์ต์ด ์ƒ๊ธธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ด ์ถ”๋ก ์€ ์ถ”๊ฐ€ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ด์œ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋” ์ ์€ ์ง€์‹œ์™€ ๋‹จ๊ณ„๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ๋“ค์„ ๋ณด๋‚ด๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค..

์งง์€ ๊ฒƒ์€ .... ๊ฒŒ์œผ๋ฆ„์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด

์—ฌ๊ธฐ์— ๋” ๋‚˜์€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. && ๋Š” ๋™๊ธฐ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ docker-compose๋Š” ์ด ํ•ญ๋ชฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ณ‘๋ ฌ ์‹คํ–‰๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. docker-compose up --pull --build ๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€๊ฐ€ ํ’€๋ฆด ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋Œ€์‹  ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ํ’€๋ง๋˜๋Š” ์ฆ‰์‹œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@shin ์€ ๋“œ๋ฌผ๊ฒŒ ์—…๋ฐ์ดํŠธ๋˜๋Š” Dockerfile๋กœ ๋งค์šฐ ๋“œ๋ฌผ๊ฒŒ ์ž์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•  Docker ์ด๋ฏธ์ง€๋ฅผ ๋งค์ผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ํ•œ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งค์ผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋ฉด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ ๋ฌธ์ œ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค(ํŠนํžˆ docker์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ, ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ์•Œ๊ณ  ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋“ค์˜ ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค). ์žฌ๋‚œ ํ”„๋กœ๊ทธ๋žจ.
์ด ์˜ต์…˜์„ docker-compose.yml์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?
๋‚ด ๋ง์€, ๊ทธ๊ฒƒ์€ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ง€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ..

๋‚ด๊ฐ€ docker-compose๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ๋ ˆ๊ฑฐ์‹œ docker run ๋ช…๋ น์œผ๋กœ ๋ž˜ํผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์ด๊ฒƒ์ด์ง€๋งŒ ๋ณด๊ธฐ ํ‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ‹ฐ์ผ“์ด ํ์‡„๋œ ์ƒํ™ฉ์„ ํŒŒ์•…ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ €๋Š” --pull ํ”Œ๋ž˜๊ทธ๋ฅผ docker-compose up ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋˜๋Š” ๋‘ ๊ฐ€์ง€ ์ œ์•ˆ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

1 - ์ด๊ฒƒ์„ ๋ช…๋ น์ค„ ์˜ต์…˜์œผ๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์‹ค์ œ๋กœ ๊ฒŒ์‹œ ๋œ ๋ฌธ์ œ.
2 - ์ด ์˜ต์…˜์„ YML ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@shin ์ด ์‹ค์ œ๋กœ ์ด์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‚˜๋Š” ํ™•์‹คํžˆ ํ›„์ž์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ฃผ์žฅ์œผ๋กœ ๊ทธ๊ฒƒ์„ ๊ธฐ๊ฐํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์ผ๊ด€์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. YML ํŒŒ์ผ์˜ ๋ชจ๋“  ๊ฒƒ์€ ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋ช…๋ น์ค„๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ „์ž์— ๋Œ€ํ•œ ๊ทธ์˜ ์š”์ง€๋Š” ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ ๊ทผ๊ฑฐ๊ฐ€ ์ข€ ๋„ˆ๋ฌด ๊ด‘๋ฒ”์œ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ จ์˜ ๋ช…๋ น๋ฌธ์„ && ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ช…๋ น์ค„์—์„œ ๊ฑฐ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ํ•ฉ์‹œ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋‘ ๊ฐœ์˜ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ์ถฉ๋ถ„ํ•˜์—ฌ ๋‘ ๋‹จ๊ณ„๊ฐ€ ์•„๋‹Œ ํ•œ ๋‹จ๊ณ„๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ถฉ๋ถ„ํžˆ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ๊ฒฐ๋œ ๋ช…๋ น์˜ ์ˆ˜๊ฐ€ ๊ณ„์† ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์š”์ ์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@orodbhen ์€ ๋…ผ์Ÿํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์•„๋ฌด๋„ ์šฐ๋ฆฌ ๋ง์„ ๋“ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ๋ง๋ถ™์ด์ž๋ฉด... ์ง€๋‚œ 1๋…„ ์ •๋„ ๋™์•ˆ ๋‚˜๋Š” ๋ฐ”๋กœ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰ํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ์—ฌ๊ธฐ๊นŒ์ง€ ์˜ค๊ฒŒ ๋˜์—ˆ๊ณ  ์ด๋ฏธ ์—ฌ๋Ÿฌ ์˜๊ฒฌ์— ์ฐฌ์„ฑํ•˜์—ฌ ์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. --pull ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์—๋„ ์ด๊ณณ์„ ๋‹ค์‹œ ์ฐพ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™์•„์š”.

@shin-, ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด๊ฑฐ๋‚˜ ์ž ๊ทธ์‹ญ์‹œ์˜ค. ๊ฑฐ์˜ 2๋…„ ๋™์•ˆ ์—ด๋ ค ์žˆ์œผ๋ฉฐ ์ง€์†์ ์ธ ๋…ผํ‰(์ง€๋Šฅ์ ์ด๊ณ  ์žฌ๋ฏธ์žˆ๋Š”), ์ˆ˜์‹ญ ๋ช…์˜ ์ฐธ๊ฐ€์ž ๋ฐ ์ˆ˜๋ฐฑ ๋ช…์˜ ํˆฌํ‘œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ž‘์„ฑ ํŒ€์€ ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ตฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ถ€ํ™œํ•  ๊ฒƒ์ด๋ผ๋Š” ์ž˜๋ชป๋œ ํฌ๋ง์— ์—ฌ์ง€๋ฅผ ๋‘์ง€ ๋ง™์‹œ๋‹ค.

์š•์„ค ์‚ฌ์šฉ์€ ์ž์ œํ•ด ์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์›๋ž˜ ์š”์ฒญ์— ์œ ์šฉ์„ฑ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์˜คํ”ˆ ์†Œ์Šค์˜ ์ •์‹ ์„ ์žŠ์ง€ ๊ฒƒ ๊ฐ™๋‹ค : ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์—๊ฒŒ ์ค‘์š”ํ•œ, ๋‹น์‹ ์€ ํฌํฌ์™€ ๋‹น์‹ ์˜ ๋งˆ์Œ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด. ๋‚˜๋Š” ๋‹น์‹ ์ด ํฌํฌ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ, ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋ถˆํ‰ํ•˜๋Š” ๊ฒƒ์€ ์—ญํšจ๊ณผ๋ฅผ ๋‚ณ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๋‹น์‹ ์„ ๋œ ๋•๊ณ  ์‹ถ์–ดํ•˜๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ ์•„๋ฌด๋„ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์›ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ ์ œํ’ˆ์— ๋„ฃ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ @shin-์˜ ๋‹ต๋ณ€์„ ์กด์ค‘ํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ๋ฐ์—๋Š” ํ•ฉ๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@lig ๋…ผ์Ÿํ• 

ํ•„์š”์— ๋”ฐ๋ผ ํฌํฌ๊ฐ€ ๊ณผ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์—๋Š” Compose๊ฐ€ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹Œ ํ•œ ์Šคํฌ๋ฆฝํŒ…์— ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. Docker Python API์™€ ๋‚ด YAML ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‹ค์–‘ํ•˜๊ณ  ๋” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

@bdharrington7 โ€” ํ•˜์ง€๋งŒ ํฌํฌ๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ฑฐ์˜ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Œ). ์ฃผ์˜ ์‚ฌํ•ญ์€ Docker Compose๊ฐ€ ์ธ๊ธฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ "๋ˆ„๊ฐ€ ์ƒ๊ด€ํ•ฉ๋‹ˆ๊นŒ?"

ํ˜„์‹ค์€ "์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ์ž์‹ ๋งŒ์˜ ํฌํฌ๋ฅผ ๋งŒ๋“œ์„ธ์š”"๋ผ๋Š” ๋Œ“๊ธ€์ด ํ˜„์‹ค์ ์ด์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์ฒด ํฌํฌ๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฉ”์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋กœ ์ธํ•ด ํˆฌ์ž ๊ฐ€์น˜๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋” ๋‚˜์€ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ฒญ์›์„ ํ•˜๊ณ  ๊ธฐ๋Šฅ์ด ์™œ ์ค‘์š”ํ•œ์ง€์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์ด์œ ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ๊ทธ๊ฒƒ์€ ํ•ญ์ƒ ์•ฝ๊ฐ„์˜ ๋ถˆ๋งŒ์กฑ๊ณผ ํ•จ๊ป˜ ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ฃผ๋œ ๋ฌธ์ œ๋Š” ์ด๊ฒƒ์ด ์™œ ๋‚˜์œ ์ƒ๊ฐ์ธ์ง€์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์‚ฌ๋ก€๊ฐ€ ์ œ์‹œ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋…ผ์Ÿ ๊ฑฐ๋ฆฌ

"์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€ํ•œ @shin-์˜ ๋‹ต๋ณ€์„ ์กด์ค‘ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ๋ฐ์—๋Š” ํ•ฉ๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค."

์‚ฌ๋žŒ๋“ค์„ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•  ๋ฟ์ž…๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” "์ข‹์€ ์ด์œ "๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ ์€ ์ฃผ๋จน์„ ์ฅ๊ณ  ๊ตฌ๊ฑธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹น์‹ ์ด ์›ํ•˜๋Š” ๊ฒƒ์„ ์–ป์„ ๋•Œ, ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์€ ์ผ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.
์“ฐ๋ ˆ๋“œ์—์„œ๋„ ์ข‹์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์ด ๋‚˜์™”๊ณ ,
๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์ง€ ์•Š๋Š” ํ•œ
์ด์— ๋Œ€ํ•ด ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ฑฐ๋‚˜ ์ด์œ ๋ฅผ ์ œ์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‚˜๋Š”
@shin-๊ณผ ํšŒ์‚ฌ์— ์—ฌ๊ธฐ์— ์˜์‹ฌ์˜ ์ด์ต์„ ์ฃผ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.
2018๋…„ 3์›” 24์ผ ํ† ์š”์ผ ์˜ค์ „ 5์‹œ 39๋ถ„ Greg Pakes [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

ํ˜„์‹ค์€ '์˜คํ”ˆ์†Œ์Šค๋‹ค, ๋‚˜๋งŒ์˜ ํฌํฌ๋ฅผ ๋งŒ๋“ค์–ด๋ผ'๋ผ๋Š” ๋Œ“๊ธ€,
๋‹จ์ง€ ํ˜„์‹ค์ ์ด์ง€ ๋ชปํ•˜๋‹ค. ์ž์‹ ์˜ ํฌํฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ์™€
๋ฉ”์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€
ํˆฌ์ž ๊ฐ€์น˜๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ ์ฒญ์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค
๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์ด์œ ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์ด์œ ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ค‘์š”ํ•œ.

์Šฌํ”„๊ฒŒ๋„ ํ•ญ์ƒ ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋ถˆ๋งŒ. ์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋Š”
์ด๊ฒƒ์ด ์™œ ๋‚˜์œ ์ƒ๊ฐ์ธ์ง€์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์‚ฌ๋ก€๊ฐ€ ์ œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. NS
์ธ์ˆ˜ "์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€ํ•œ @shin- http:///shin- ์˜ ์‘๋‹ต์„ ์กด์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ๋ฐ์—๋Š” ํ•ฉ๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค."
์‚ฌ๋žŒ๋“ค์„ ๋งŒ์กฑ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” "์ข‹์€ ์ด์œ "๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธ
https://github.com/docker/compose/issues/3574#issuecomment-375805478 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AEV8Q9RseMxYS8KGyD9E2BK0pZv7OJpuks5thWt7gaJpZM4IyPQh
.

์š”์ ์€ ์ฃผ๋จน์„ ํœ˜๋‘๋ฅด๊ณ  ๊ตฌ๊ฑธํ•ด๋„ ์›ํ•˜๋Š” ๊ฒƒ์„ ์–ป๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ์ž‘์—…์„ ์š”์ฒญํ•˜๋Š” ์ „๋žต์œผ๋กœ ๊ทธ๊ฒƒ์„ ์šฉ๋‚ฉํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ƒ๋‹นํžˆ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ์ฒญ์›์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ "์ฃผ๋จน์„ ๋‘๋“œ๋ฆฌ๋Š”" ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์„์ˆ˜๋ก ์ค‘์š”ํ•œ ์‚ฌ๋žŒ๋“ค์ด ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์Šน์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์Šค๋ ˆ๋“œ์—๋„ ์ข‹์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ์งˆ์ ์œผ๋กœ "๋Œ€์‹  ์ด ๋‘ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"๋กœ ์š”์•ฝ๋˜๋Š” ํ•œ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ„๋ช…ํžˆ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ๋“ค์„ ์ฐธ์—ฌ์‹œํ‚ค๊ณ  ๊ทธ๊ฒƒ์ด ์™œ ์ข‹์€ ์ผ์ธ์ง€ ๊ต์œกํ•˜์‹ญ์‹œ์˜ค.

์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ด์— ๋Œ€ํ•ด ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ฑฐ๋‚˜ ์ด์œ ๋ฅผ ์ œ์‹œํ•  ์˜๋ฌด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ขŒ์ ˆํ•  ๊ฒƒ์„ ์˜ˆ์ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์‹œํ•˜๋Š” ํƒœ๋„์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์—ฌ๊ธฐ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ๊ฐ™์€ ํŒ€์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋‘ ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ๊ณตํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์ •ํ™•ํžˆ ์–ด๋–ค ์ œํ’ˆ์ด ๋ฌด๋ฃŒ์ธ๊ฐ€์š”? docker-compose.exe๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  docker EE๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‹ค์ œ๋กœ ์ œํ’ˆ์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•œ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹™๋‹ˆ๊นŒ?

IMHO --build ๋‹น๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค; ๋‹ค๋ฅธ ํ”Œ๋ž˜๊ทธ๋‚˜ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜ค์ง€ ์•Š์œผ๋ ค๋ฉด ์ด๋ฏธ์ง€ ๋ฒ„์ „์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.

@ET-CS: ์ด๋ฏธ์ง€ ๋ฒ„์ „์€ ํƒœ๊ทธ์ผ ๋ฟ์ด๋ฉฐ ์—ฌ์ „ํžˆ ๋‹ค๋ฅธ ํ•ด์‹œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์ง€์  @lifeofguenter ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค๋ฅธ ํ•ด์‹œ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ๊ฒฝ์šฐ์—๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿฐ ์žฅ๋ฉด์—์„œ ์ €๋Š” ๋ชจ๋“  ํ™˜๊ฒฝ(dev, prod)์ด ๊ฐ€๋Šฅํ•œ ํ•œ ๋™์ผํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง€๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ํ”„๋กœ๋•์…˜์—์„œ๋Š” ์ด์ „ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ์ƒˆ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

--build ๊ฐ€) ๋ชจ๋“  ๊ฒƒ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ์šฉ CI๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ํŒ€(๋„์ปค์— ๋Œ€ํ•ด ๊ฑฐ์˜ ์•Œ์ง€ ๋ชปํ•จ)์€ ๋กœ์ปฌ ์‹œ์Šคํ…œ์—์„œ ์ „์ฒด ๋ฐฑ์—”๋“œ ์Šคํƒ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋ฉฐ ๊ฐ€์žฅ ์—…๋ฐ์ดํŠธ๋œ ์ด๋ฏธ์ง€์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์–ธ๊ฐ€๊ฐ€ ๊ณ ์žฅ๋‚œ ๊ฒฝ์šฐ์—๋งŒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ œ ์ด๊ฒƒ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋ฐฑ์—”๋“œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ  ์ด์ „ ๋ฒ„์ „์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „์ฒด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๊ฐœ๋ฐœ ์Šคํ”„๋ฆฐํŠธ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์„ ๋น„๋‚œํ•˜์ง€๋งŒ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋ž˜ํผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์˜ˆ์ •์ž„).

@agnjunio ์ •๋ง ๋ถˆํ–‰ํ•˜๊ฒŒ ๋“ค๋ฆฌ๋„ค์š”. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์‚ฌ๋žŒ์ด docker-compose pull ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ๋‹ค๋ฉด ๊ฐ€์ƒ์˜ --pull ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์–ผ๋งˆ๋‚˜ ๋‚ฎ์Šต๋‹ˆ๊นŒ?

@shin- ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์˜ ํ•ด๊ฒฐ์ฑ…์€ pull: always ํƒœ๊ทธ๋ฅผ yaml ๋‚ด๋ถ€, ์•„๋งˆ๋„ image: ์˜ต์…˜ ๋‚ด๋ถ€์— ๋‘๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/docker/compose/issues/3574#issuecomment -382451356์˜ @ET-CS:

--build ๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ๋งŒ๋“ค ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

IMHO --๋นŒ๋“œ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”Œ๋ž˜๊ทธ๋‚˜ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜ค์ง€ ์•Š์œผ๋ ค๋ฉด ์ด๋ฏธ์ง€ ๋ฒ„์ „์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.

depends_on ๋นŒ๋“œ์˜ ๊ฒฐ๊ณผ์ธ FROM์„ ์‚ฌ์šฉํ•˜๋Š” ๋นŒ๋“œ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ฐจ๋‹จํ•˜๋Š” AFAIK.

version: "3.4"
services:
  some-base-image:
    image: our/base-image
    build:
      context: ./base
  # This Dockerfile has FROM our/base-image
  coolthing:
    depends_on:
    - some-base-image
    build:
      context: ./coolthing

์ €๋Š” https://github.com/docker/compose/issues/3574#issuecomment -252861859 ๋ฐ https://github.com/docker/compose/issues/3574#issuecomment -279460839์—์„œ ์ œ์•ˆํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฐฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

@solsson
์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์ฐจ๋‹จํ•˜๋Š” ์ด์œ  ๋˜๋Š” ์ฐจ๋‹จํ•˜๋Š” ํ•ญ๋ชฉ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

@shin- ์—ฌ๊ธฐ์„œ ์ฐจ์ด์ ์€ docker-compose up --help ์‹คํ–‰ํ•˜๋ฉด :latest ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ฐ›๋Š” ๋Œ€์‹  ์š”์ฆ˜์—๋Š” ๋ฌธ์„œ๋‚˜ Google์—์„œ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๋Š” docker-compose up ๊ฐ€ ๋‚ด๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ฃผ์„์„ ์ฝ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ด์ œ ๋‘ ๊ฐœ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@agnjunio ์ •๋ง ๋ถˆํ–‰ํ•˜๊ฒŒ ๋“ค๋ฆฌ๋„ค์š”. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ docker-compose pull์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ๋‹ค๋ฉด ๊ฐ€์ƒ์˜ --pull ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ์–ผ๋งˆ๋‚˜ ์ค„์–ด๋“ค์—ˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์ •ํ•˜๊ฒŒ

docker-compose๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” docker-compose.yaml ํŒŒ์ผ์„ ์ €์žฅ์†Œ์— ๋ฐฐ์น˜ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€์ ธ์™€ docker-compose up [service] ์‹คํ–‰ํ•  ๋•Œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ์„ ๊ฐ–๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

codegen ์‹คํ–‰ ๋ฐ JSON ์Šคํ‚ค๋งˆ๋ฅผ ๋‹จ์ผ ํŒŒ์ผ๋กœ ์—ญ์ฐธ์กฐํ•˜๋Š” ๋„๊ตฌ ์‹คํ–‰๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” docker-compose ํŒŒ์ผ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋„๊ตฌ๊ฐ€ ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต์ ์ธ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด codegen ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ์น˜ ๋Šฅ๋ ฅ:

services:
  codegen:
    image: myimage:latest
    pull: Always

๊ฐœ๋ฐœ์ž๊ฐ€ ์•ฑ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ตœ์‹  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ผ๋ จ์˜ ๋ช…๋ น์ด๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ƒ๊ธฐ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฌธ์„œ๋กœ ๋ชจ๋“  ๋‹จ์ผ ์ €์žฅ์†Œ๋ฅผ ๋ณด์™„ํ•  ํ•„์š” ์—†์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ docker-compose up์„ ์‹คํ–‰ํ•˜๊ณ  ์˜ˆ์ƒ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. .

"์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ด๋ฏธ ์กด์žฌํ•จ"์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ docker-compose rm --stop ๋ฅผ ์ถ”๊ฐ€ํ•˜์ž๊ณ  ์ œ์•ˆํ–ˆ์„ ๋•Œ ๋Œ€๋‹ต์€ " docker-compose stop myapp && docker-compose rm myapp ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” ๋ˆ„๊ตฐ๊ฐ€ docker-compose down ์˜ ๊ตฌํ˜„์„ ์š”์ฒญํ–ˆ๋‹ค๋ฉด docker-compose stop myapp && docker-compose rm -v myapp && docker-compose images -q myapp | xargs docker rmi ... ๋น„์‹ค์šฉ์ ์ธ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋Š” 2๋…„ ์ „์— ์ œ๊ธฐ๋˜์—ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ docker-compose.yml์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” 37๊ฐœ ์ •๋„์˜ ์„œ๋น„์Šค๊ฐ€ ํ•œ ๋ฌด๋ฆฌ์— ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ 4-5๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์„œ๋น„์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ ๊ฒฝ์šฐ ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค๊ธฐ ์ „์— ํŠน์ • ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ํ’€์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์…ธ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋˜ ๋‹ค๋ฅธ ์š”์ ์€ docker-compose up ์— --quiet-pull ์˜ต์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. up ์— pull์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์ฒ˜์Œ ํ™•์ธํ•˜๋ ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์กด์žฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. --quiet-pull ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์žฅํ™ฉํ•œ pull์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Docker Compose ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ --pull ์˜ต์…˜์ด ์žˆ์œผ๋ฉด ๋ณ„๋„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ํ•„์š” ์—†์ด ๋” ๋‚˜์€ ๊ฒฝํ—˜์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ์‹œํ‚ค๋ ค๊ณ  ๋…ธ๋ ฅํ•œ 2๋…„์˜ ์‚ฌ๋žŒ๋“ค. docker-compose ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค๋ฉด ์šฐ์„  ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ์‚ถ์ด ๋” ๋‚˜์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐœ์„ ์„ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” docker-compose๋ฅผ ํฌํฌํ•˜๊ณ  ์Šค์Šค๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ PR์„ ์ œ์ถœํ•œ๋‹ค๋ฉด, ๊ทธ๊ฒƒ์ด ๋ฐ›์•„๋“ค์—ฌ์ง€๋ฉด ๊ธฐํšŒ๊ฐ€ ๋ ๊นŒ์š”?
์ด๊ฒƒ์€ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ช‡ ๊ฐ€์ง€ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์˜ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜ ์ž์‹ . ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ฐ›์•„ ๋“ค์—ฌ์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด์ด ์—ญํ• ์ด ๋‹ซํž™๋‹ˆ๋‹ค.
์˜ค๋ฅธ์ชฝ?

๋‚˜๋Š”์ด ๊ฐ™์€ ๋ฌธ์ œ์™€ ์„ฑ๊ฐ€์‹  ์“ฐ๋ ˆ๊ธฐ, ์—ฌ๊ธฐ์—์„œ ์›…์„ฑ ๊ฑฐ๋ฆฌ๋Š” ๋ฌด๋ฆฌ์— ๋ถ€๋”ช์ณค์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์œ ์ง€๋ณด์ˆ˜์ž์—๊ฒŒ ํœด์‹์„ ์ฃผ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ์ด๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ค‘์š”ํ•œ ์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์„ ์ ˆ์‹คํžˆ ํ•„์š”๋กœํ•œ๋‹ค๋ฉด PR์„ ์—ด์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? ์ฝ”๋“œ๊ฐ€ ์ตœ์†Œํ•œ์˜ ์œ„ํ—˜์œผ๋กœ ๊นจ๋—ํ•˜๋‹ค๋ฉด ์™œ ์ˆ˜๋ฝํ•˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋…ผ์˜์— ์ด ์š”์ฒญ์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์„ ํƒ€๋‹นํ•œ ์ด์œ ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋‹ซํžŒ ๋ฌธ์ œ๋ณด๋‹ค _๊ณต๊ฐœ_ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์‹œ์ž‘ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ํฝ๋‹ˆ๋‹ค.

์ด "๋‹ซํžŒ" ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ด ๋ฌธ์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•˜์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ์ผ๋ถ€ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฌธ์ œ ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ์‘๋‹ต์€ ๊ทธ๋‹ค์ง€ ๋„์›€์ด ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์–ด์กฐ๋Š” ์ข…์ข… ๊ฐ„๊ฒฐํ•˜๋ฉฐ ํ”ผ๋“œ๋ฐฑ์ด ํ™˜์˜๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€๋Š” ์—ฌ๊ธฐ์—์„œ ์ด๊ฒƒ์ด ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋ฉฐ (์ ์–ด๋„ ์šฐ๋ฆฌ ๋Œ€๋ถ€๋ถ„์€) ๊ณ ๊ฐ์—๊ฒŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„ ํˆฌ์ž๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์€ ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๋ฐ ์ถ”๊ฐ€ ์‹œ๊ฐ„์„ ํ• ์• ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌ์ž์˜ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ์‘๋‹ต์€ ๋‹ค์Œ ๋ฒˆ์—๋Š” ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด๋Š” "๋ฌด๋ฃŒ ๋งฅ์ฃผ"๋ผ๋Š” ์˜๋ฏธ์—์„œ ์‹ค์ œ๋กœ "๋ฌด๋ฃŒ"๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ๋” ๋‚˜์€ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ฐธ์—ฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์‚ฌ๋žŒ๋“ค์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์€ ๊ท€์ค‘ํ•œ ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์€ ๊ธฐ๊บผ์ด ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•  ์˜ํ–ฅ์ด ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์„ ๋“ค์ด๊ธฐ ์ „์— ์ž์‹ ์˜ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•œ๋‹ค๋Š” ์ผ์ข…์˜ ํ‘œ์‹œ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ, ๋‹จ์ˆœํžˆ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์ˆ˜์ •์„ ์š”๊ตฌํ•˜๋Š” ๋Œ“๊ธ€์€ ์œ ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๋Œ€๋‹ค์ˆ˜๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์œผ๋ฉฐ "์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ํฌํฌํ•˜์„ธ์š”"์™€ ๊ฐ™์€ ๋Œ“๊ธ€๋„ ๋˜‘๊ฐ™์ด ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@shin- "--build"๊ฐ€ ๊ตฌํ˜„๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? docker-compose build && docker-compose up๊ณผ ๋‹ค๋ฅธ๊ฐ€์š”? --build(์ถ”๊ฐ€๋จ)์™€ --pull(์ค‘๋ณต๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋จ) ๊ฐ„์˜ ์ฒ ํ•™์  ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๊ณ  ๊ณผ์ •์„ ์ดํ•ดํ•˜๋ฉด ์ผ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ธฐ์–ตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ๊ฐ€ ์—ด๋ฆฌ๋ฉด ๊ธฐ๊บผ์ด PR์„ ์ œ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. @everybodyelse... ์ •๋ง "์˜คํ”ˆ ์†Œ์Šค ์ •์‹ "์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ํฌํฌํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ์˜คํ”ˆ์†Œ์Šค์˜ ์ •์‹ ์ด "๋งŒ์•ฝ ๋‹น์‹ ์ด ๋ฌด์–ธ๊ฐ€๋ฅผ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹น์‹ ์ด) ๋‹น์‹ ์ด ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ์š”๊ตฌ์‚ฌํ•ญ์— ๊ธฐ์—ฌํ•˜๋„๋ก ๋•๊ณ , b) ๋‹น์‹ ์ด ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ฝ”๋“œ์— ๊ธฐ์—ฌํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ"์ด๊ณ  ๋‹น์‹ ์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋งค์šฐ ์ค‘์š”ํ•  ๋•Œ๋งŒ ํฌํฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋‹น์‹ ๋งŒ์ด ํ˜œํƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ณต์œ ํ•  ๋•Œ ๊ฐ€์žฅ ํฐ ํ˜œํƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๊ต์œก์„ ๋ฐ›๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

2๋…„ ๋™์•ˆ ์ฃผ์žฅํ•˜๊ณ  ๋ฌด์‹œํ•  ๋งŒํ•œ ํƒ€๋‹นํ•œ ์ด์œ ์™€ ์ด๋ฅผ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ง‰๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›์„ ์ œ๊ณตํ•œ ํ›„, ์ €๋Š” @shin-์ด ์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธฐ๋Šฅ์ด ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์ฃผ์žฅํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ pull์ด ์‹คํŒจํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ํ•˜์ง€ ์•Š์„ ํƒ€๋‹นํ•œ ์ด์œ ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ docker๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

docker compose์—์„œ kubernetes ์ด๋ฏธ์ง€ ํ’€ ์ •์ฑ…์„ ์ฐพ๊ณ  ์žˆ๋Š”๋ฐ "ํ’€"์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@shin- ๊ทธ๋งŒ ์œ ์น˜ํ•ด. ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋งŽ์€ ์ด์œ ๊ฐ€ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ PR์— ๊ฐœ๋ฐฉ์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค...

๋‹น์‹ ์€ ๋‚˜์™€ ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‚˜๋Š” ๋‹น์‹ ์ด ad hominems, @Wenzil์— ์˜์ง€ํ•˜๋Š” ๊ฒƒ์— ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋†’์€ ์ˆ˜์ค€์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

@shin- ์ €ํฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋ง์”€ํ•˜์‹  ์ด์œ  ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„ ๊ฐ™์€ ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @Wenzil ์€ ์†”์งํ•˜๊ฒŒ
๋‚ด๊ฐ€ ์•„๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€ ์•Š๊ณ  docker-compose๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค๊ฐ€๊ฐ€๋„๋ก ์„ค๋“ํ•˜๋Š” ๊ฒƒ์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ค๋ช…๋œ ๋งค์šฐ ํƒ€๋‹นํ•œ ์ด์œ ์— ๋Œ€ํ•ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด @shin-์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ์ด๊ฒƒ์€ ์„œ๋น„์Šค ์„ ์–ธ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. bash ๋ช…๋ น์„ ํ•จ๊ป˜ ๋ฌถ๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ ๋ฐฐํฌ์— ํŠนํžˆ ์ข‹์€ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•„๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€ ์•Š๊ณ  docker-compose๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค๊ฐ€๊ฐ€๋„๋ก ์„ค๋“ํ•˜๋Š” ๊ฒƒ์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ docker-compose๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Docker-stack, docker-machine ๋ฐ docker-cli๋Š” ๋ชจ๋‘ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ณ„์† ํƒˆ์„ ํ•˜๋ฉด์„œ ์ž ๊ธˆ. https://github.com/docker/cli/pull/1498 ์˜ ์šด๋ช…์— ๋”ฐ๋ผ ์žฌํ‰๊ฐ€ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋กœ ์„œ๋น„์Šค ์ •์˜์— pull_policy ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฒ€ํ† ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์˜ต์…˜๊ณผ ์ •ํ™•ํ•œ ๊ตฌ๋ฌธ์ด ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ด ์Šค๋ ˆ๋“œ์—์„œ ํ‘œํ˜„๋œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

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