Skip to main content

07I. ADD

About 1 minDevOpsDockercrashcoursepyrasis.comdockerdevops

07I. ADD ๊ด€๋ จ

๋ชฉ์ฐจ

์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

7์žฅ - 9. ADD
์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

ADD๋Š” ํŒŒ์ผ์„ ์ด๋ฏธ์ง€์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

.Dockerfile

ADD hello-entrypoint.sh /entrypoint.sh
ADD hello-dir /hello-dir
ADD zlib-1.2.8.tar.gz /
ADD hello.zip /
ADD http://example.com/hello.txt /hello.txt
ADD *.txt /root/

ADD <๋ณต์‚ฌํ•  ํŒŒ์ผ ๊ฒฝ๋กœ> <์ด๋ฏธ์ง€์—์„œ ํŒŒ์ผ์ด ์œ„์น˜ํ•  ๊ฒฝ๋กœ> ํ˜•์‹์ž…๋‹ˆ๋‹ค.

  • <๋ณต์‚ฌํ•  ํŒŒ์ผ ๊ฒฝ๋กœ>๋Š” ์ปจํ…์ŠคํŠธ ์•„๋ž˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋ฉฐ ์ปจํ…์ŠคํŠธ ๋ฐ”๊นฅ์˜ ํŒŒ์ผ, ๋””๋ ‰ํ„ฐ๋ฆฌ๋‚˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ) ADD ../hello.txt /home/hello (X)
    • ์˜ˆ) ADD /home/hello/hello.txt /home/hello (X)
  • <๋ณต์‚ฌํ•  ํŒŒ์ผ ๊ฒฝ๋กœ>๋Š” ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํŒŒ์ผ๋งŒ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ) ADD *.txt /root/
  • <๋ณต์‚ฌํ•  ํŒŒ์ผ ๊ฒฝ๋กœ>์— ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ํŒŒ์ผ์˜ URL์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • <์ด๋ฏธ์ง€์—์„œ ํŒŒ์ผ์ด ์œ„์น˜ํ•  ๊ฒฝ๋กœ>์˜ ๋งˆ์ง€๋ง‰์— /๊ฐ€ ์žˆ์œผ๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ํŒŒ์ผ์€ ๊ทธ ์•„๋ž˜์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ADD http://example.com/hello.txt /home/hello/ ์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด /home/hello/hello.txt</>์— ํŒŒ์ผ์ด ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ์— ์žˆ๋Š” ์••์ถ• ํŒŒ์ผ(tar.gz, tar.bz2, tar.xz)์€ ์••์ถ•์„ ํ•ด์ œํ•˜๊ณ  tar๋ฅผ ํ’€์–ด์„œ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ํŒŒ์ผ URL์€ ์••์ถ•๋งŒ ํ•ด์ œํ•œ ๋’ค tar ํŒŒ์ผ์ด ๊ทธ๋Œ€๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ) ADD hello.tar.gz / (์••์ถ•์„ ํ•ด์ œํ•˜๊ณ  tar๋ฅผ ํ’€์–ด์„œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.)
    • ์˜ˆ) ADD http://zlib.net/zlib-1.2.8.tar.gz / (gzip ์••์ถ•๋งŒ ํ•ด์ œํ•œ ๋’ค tar ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ ํŒŒ์ผ ๋‚ด์šฉ์€ tar์ด์ง€๋งŒ ํŒŒ์ผ ์ด๋ฆ„์€ zlib-1.2.8.tar.gz์ฒ˜๋Ÿผ .gz๊ฐ€ ๋ถ™์–ด์žˆ์Šต๋‹ˆ๋‹ค.)
  • <์ด๋ฏธ์ง€์—์„œ ํŒŒ์ผ์ด ์œ„์น˜ํ•  ๊ฒฝ๋กœ>๋Š” ํ•ญ์ƒ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์ด /๋กœ ๋๋‚˜๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ํŒŒ์ผ์€ ๊ทธ ์•„๋ž˜์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.
  • ADD ./ /hello์™€ ๊ฐ™์ด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ .dockerignore ํŒŒ์ผ์— ์„ค์ •ํ•œ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.
์šฐ๋ถ„ํˆฌ, curl
FROM ubuntu:latest
RUN apt update
RUN apt install -y curl
RUN curl http://zlib.net/zlib-1.2.8.tar.gz | tar -xz

์ธํ„ฐ๋„ท์˜ ํŒŒ์ผ URL์„ ์••์ถ• ํ•ด์ œํ•˜์—ฌ ์ถ”๊ฐ€ํ•˜๊ธฐ

์•ž์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ADD๋Š” ํŒŒ์ผ URL์„ ์••์ถ•๋งŒ ํ•ด์ œํ•˜๊ณ  tar๋Š” ํ•ด์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋•Œ๋Š” RUN์œผ๋กœ curl์ด๋‚˜ wget์œผ๋กœ ํŒŒ์ผ์„ ๋ฐ›์€ ๋’ค ์••์ถ•์„ ํ•ด์ œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ tar, tar.gz, tar.bz2, tar.xz ํŒŒ์ผ์˜ ์••์ถ•์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • ubuntu:latest๋Š” bzip2๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ , xz๋Š” ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. xz๋Š” apt-get์œผ๋กœ xz-utils ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • centos:latest๋Š” xz๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ , bz2๋Š” ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. bz2๋Š” yum์œผ๋กœ bzip2 ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
RUN curl http://example.com/hello.tar | tar -x
RUN curl http://example.com/hello.tar.gz | tar -xz
RUN curl http://example.com/hello.tar.bz2 | tar -xj
RUN curl http://example.com/hello.tar.xz | tar -xJ

ADD๋กœ ์ถ”๊ฐ€๋˜๋Š” ํŒŒ์ผ์€ ์†Œ์œ ์ž(UID) 0, ๊ทธ๋ฃน(GID) 0์œผ๋กœ ์„ค์ •๋˜๊ณ  ๊ถŒํ•œ์€ ๊ธฐ์กด ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. URL๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ถŒํ•œ์€ 600์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

UID 0, GID 0์€ root ๊ณ„์ •์ž…๋‹ˆ๋‹ค.


์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.