2022. 11. 18. 01:33ใBackend/Docker
๐ง Multi-stage build๊ฐ ํ์ํ ์ด์
์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ํ  ๋๋ ๋ง์ ์์กด์ฑ ํจํค์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ค.
ํน์  ์ธ์ด๋ก ์์ฑ๋ ์์ค์ฝ๋๋ฅผ ๋น๋ํ๊ธฐ ์ํด์๋ ๊ด๋ จ ๋น๋ ํด๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ  ์ ์๋ค.
Dockerfile๋ก ์ด๋ฌํ ์ฝ๋๋ฅผ ๋น๋ํ๊ธฐ ์ํด์๋
๊ด๋ จ ๋๊ตฌ๋ค์ด ๋ฏธ๋ฆฌ ์ค์น๋ ์ด๋ฏธ์ง๋ฅผ FROM์ ๋ช
์ํ๊ณ  RUN ๋ช
๋ น์ด๋ก ์์ค์ฝ๋๋ฅผ ์ปดํ์ผ ํ๊ฒ ๋๋๋ฐ,
์คํ ํ์ผ์ ํฌ๊ธฐ๊ฐ ๋งค์ฐ ์๋๋ผ๋ ์ด์ ์ฌ์ฉ๋ ๊ฐ์ข
 ํจํค์ง ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ธํด ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ๊ฑฐ๋ํด์ง ์ ์๋ค.
17.05 ๋ฒ์  ์ด์์ ์ฌ์ฉํ๋ ๋์ปค ์์ง์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ฉํฐ ์คํ ์ด์ง ๋น๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
Multi-stage build
- ํ๋์ Dockerfile ์์ ์ฌ๋ฌ ๊ฐ์ FROM ์ด๋ฏธ์ง๋ฅผ ์ ์ํจ์ผ๋ก์จ ๋น๋ ์๋ฃ ์ ์ต์ข ์ ์ผ๋ก ์์ฑ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ค๋ค.
- ๋ฐ๋์ ํ์ํ ์คํ ํ์ผ๋ง ์ต์ข ์ด๋ฏธ์ง ๊ฒฐ๊ณผ๋ฌผ์ ํฌํจ์ํด์ผ๋ก์จ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์๋ค.
์ฌ์ฉ ์์
FROM golang
ADD main.go /root
WORKDIR /root
RUN go build -o /root/mainApp /root/main.go
FROM alpine: latest
WORKDIR /root
COPY --from=0 /root/mainApp . # ์ฒซ ๋ฒ์งธ FROM ์ด๋ฏธ์ง์์ ๋น๋ํ /root/mainApp ํ์ผ์ alpine:lates ์ด๋ฏธ์ง์ ๋ณต์ฌํ๋ค.
CMD ["./mainApp"]- ์ผ๋ฐ์ ์ธ Dockerfile๊ณผ ๋ค๋ฅด๊ฒ, 2๊ฐ์ FROM์ ํตํด 2๊ฐ์ ์ด๋ฏธ์ง๊ฐ ๋ช ์๋์๋ค.
- ๋ ๋ฒ์งธ FROM ์๋์์ ์ฌ์ฉ๋ COPY ๋ช
๋ น์ด๋ ์ฒซ ๋ฒ์งธ FROM์์ ์ฌ์ฉ๋ ์ด๋ฏธ์ง์ ์ต์ข
 ์ํ์ ์กด์ฌํ๋ /root/mainAppํ์ผ์ ๋ ๋ฒ์งธ ์ด๋ฏธ์ง์ธapline:latest์ ๋ณต์ฌํ๋ค.
- ์ด๋ --from=0์ ์ฒซ ๋ฒ์งธ FROM์์ ๋น๋๋ ์ด๋ฏธ์ง์ ์ต์ข ์ํ๋ฅผ ์๋ฏธํ๋ค.
'Backend > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Docker] Dockerfile ๋ช ๋ น์ด & build ์ต์  (0) | 2022.11.18 | 
|---|---|
| [Docker] Dockerfile๋ก ์ด๋ฏธ์ง ์์ฑํ๊ธฐ (1) | 2022.11.15 | 
| [Docker] ๋์ปค ํ๋ธ ์ ์ฅ์์ ์ด๋ฏธ์ง ๋ฐฐํฌํ๊ธฐ (0) | 2022.11.05 |