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