ํฌ์ŠคํŠธ

Docker ๋ช…๋ น์–ด ADD, COPY

Docker ๋ช…๋ น์–ด ADD, COPY

๐Ÿ’ก ADD & COPY

์˜ค๋Š˜์€ Docker ๊ณต์‹๋ฌธ์„œ์—์„œ ADD์™€ COPY์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ–ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ADD์™€ COPY๋Š” ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋น„์Šทํ•˜๋‹ค.

ํ•˜์ง€๋งŒ DOCKER๋Š” COPY๋ฅผ ์ถ”์ฒœํ•œ๋‹ค. ์™œ๋ƒ๋ฉด COPY๊ฐ€ ๋ณด๋‹ค ํˆฌ๋ช…?ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

COPY๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ๋กœ์ปฌ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

ADD์˜ ๊ฐ€์žฅ ์ข‹์€ ์šฉ๋„๋Š” ๋กœ์ปฌ tarํŒŒ์ผ์„ ์ด๋ฏธ์ง€๋กœ ์ž๋™ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค. dockerfile์„ ๋งŒ๋“ค ๋•Œ,

๊ฐ๊ฐ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ step์ด ์žˆ๋‹ค๋ฉด, COPY๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๊ฐœ๋ณ„์ ์œผ๋กœ COPY๋ฅผ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ, ๊ฐ๊ฐ์˜ ํŒŒ์ผ์ด ์ˆ˜์ •์ด ๋˜์–ด ๋‹ค์‹œ ๋นŒ๋“œ ๋˜์–ด์งˆ๋•Œ

์ด์ „์— ์ƒ์„ฑ๋œ ๋นŒ๋“œ ์บ์‹œ๊ฐ€ ๋ฌดํšจํ™” ๋œ๋‹ค. (์ฆ‰, ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋นŒ๋“œ๋ฅผ ํ•œ๋‹ค.)


์–ด์ œ ๋‚ด๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ dockerfile์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์—ˆ๋‹ค.

๋กœ์ปฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ณต๋ถ™

1
2
COPY . /srv/docker-server
RUN pip install -r requirements.txt 

๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณธ ๊ฒฐ๊ณผ ์ €๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•˜๋‚˜์˜ ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•ด๋„ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š”?

๊ทธ๋Ÿฐ ์ƒํ™ฉ์ด ์ƒ๊ธธ์ˆ˜๋„ ์žˆ์„๊ฑฐ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค.

1
2
COPY requirements.txt  /srv/docker-server
RUN pip install -r requirements.txt 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด requirements.txt ๋งŒ ๋นŒ๋“œํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์—

docker๊ฐ€ ์ง€ํ–ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ง ๊ฑฐ ๊ฐ™๋‹ค.


๋„์ปค์—์„œ๋Š” ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, URL์„ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€

์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ ๋Œ€์‹ ์— curl ๋˜๋Š” wget ์„ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์••์ถ•์„ ํ‘ผ ํ›„์—

๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ํŒŒ์ผ์€ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋ฏธ์ง€์— ๋‹ค๋ฅธ ์ธต์„ ์ถ”๊ฐ€ํ•  ํ•„์š” ๋˜ํ•œ ์—†๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ• ๋ณด๋‹จ, ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ.

  • [ CASE 1 ]
    ADD https://example.com/big.tar.xz /usr/src/things/
    RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things
    RUN make -C /usr/src/things all
    


  • [ CASE 2 ]
    RUN mkdir -p /usr/src/things \
      && curl -SL https://example.com/big.tar.xz \
      | tar -xJC /usr/src/things \
      && make -C /usr/src/things all
    

์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.