728x90
이미지 최초빌드 시작 -------------------------------------------------------------
~@worker01:~/ch03/exercises/web-ping$ docker image build --tag web-ping .
[+] Building 5.5s (9/9) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 191B 0.0s
=> [internal] load metadata for docker.io/diamol/node:latest 4.4s
=> [auth] diamol/node:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/3] FROM docker.io/diamol/node:latest@sha256:dfee522acebdfdd9964aa9c88ebebd03a20b6dd573908347be3ebf52ac4879c8 0.2s
=> => resolve docker.io/diamol/node:latest@sha256:dfee522acebdfdd9964aa9c88ebebd03a20b6dd573908347be3ebf52ac4879c8 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 881B 0.0s
=> [2/3] WORKDIR /web-ping 0.1s
=> [3/3] COPY app.js . 0.1s
=> exporting to image 0.5s
=> => exporting layers 0.2s
=> => exporting manifest sha256:2a8c345627ea204165da871be2a31f712bb9ac5153ca9c03e7b954de0af1a0dc 0.0s
=> => exporting config sha256:f1e14bf9395ea7502e6c53f90b14681718fe46a064536a3ac2a4ca0da70ef03a 0.0s
=> => exporting attestation manifest sha256:235ff55fece72cc1d39e469b763436f36a426511a20bf0a9aea074b7952b8eb5 0.0s
=> => exporting manifest list sha256:9c4fa23e8e46e991fa0dd3619f2a1c058c6939a8c719e7544350a1e1a3a29273 0.0s
=> => naming to docker.io/library/web-ping:latest 0.0s
=> => unpacking to docker.io/library/web-ping:latest 0.1s
이미지 최초빌드 종료 -------------------------------------------------------------
파일 수정없이 이미지 빌드 시작 -------------------------------------------------------------
~@worker01:~/ch03/exercises/web-ping$ docker image build --tag web-ping .
[+] Building 1.5s (8/8) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 191B 0.0s
=> [internal] load metadata for docker.io/diamol/node:latest 1.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/3] FROM docker.io/diamol/node:latest@sha256:dfee522acebdfdd9964aa9c88ebebd03a20b6dd573908347be3ebf52ac4879c8 0.0s
=> => resolve docker.io/diamol/node:latest@sha256:dfee522acebdfdd9964aa9c88ebebd03a20b6dd573908347be3ebf52ac4879c8 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 28B 0.0s
=> CACHED [2/3] WORKDIR /web-ping 0.0s
=> CACHED [3/3] COPY app.js . 0.0s
=> exporting to image 0.1s
=> => exporting layers 0.0s
=> => exporting manifest sha256:2a8c345627ea204165da871be2a31f712bb9ac5153ca9c03e7b954de0af1a0dc 0.0s
=> => exporting config sha256:f1e14bf9395ea7502e6c53f90b14681718fe46a064536a3ac2a4ca0da70ef03a 0.0s
=> => exporting attestation manifest sha256:3992a4ca8bf22907eb16b275c9e0700c8432d10639ae9268e8f699131e63ea9b 0.0s
=> => exporting manifest list sha256:fb3303bc36c7bea24988fe77c3e23ec46ce888dbffa42c1656a2400ad0190e75 0.0s
=> => naming to docker.io/library/web-ping:latest 0.0s
=> => unpacking to docker.io/library/web-ping:latest
파일 수정없이 이미지 빌드 종료 -------------------------------------------------------------
파일 수정 후 이미지 빌드 시작 -------------------------------------------------------------
~@worker01:~/ch03/exercises/web-ping$ docker image build -t web-ping:v2 .
[+] Building 3.5s (9/9) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 191B 0.0s
=> [internal] load metadata for docker.io/diamol/node:latest 2.7s
=> [auth] diamol/node:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/3] FROM docker.io/diamol/node:latest@sha256:dfee522acebdfdd9964aa9c88ebebd03a20b6dd573908347be3ebf52ac4879c8 0.0s
=> => resolve docker.io/diamol/node:latest@sha256:dfee522acebdfdd9964aa9c88ebebd03a20b6dd573908347be3ebf52ac4879c8 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 887B 0.0s
=> CACHED [2/3] WORKDIR /web-ping 0.0s
=> [3/3] COPY app.js . 0.0s
=> exporting to image 0.4s
=> => exporting layers 0.2s
=> => exporting manifest sha256:f3da3b8c443c4b22b36250e554ecac90f763e3798e8e1cb092baa2cdf126e371 0.0s
=> => exporting config sha256:012618c2e871c27a5b41483a47493836fde5a662fa0e6df5bbed49ac460a9925 0.0s
=> => exporting attestation manifest sha256:dca4c9666659a5f4e2cf0c8d62c06a78cf108ddd93a9e3cfe6782cfeee80dce1 0.0s
=> => exporting manifest list sha256:f141db8fbf494079bd24a7ad5331a56c6917eceb431c3240843571e67116eeaf 0.0s
=> => naming to docker.io/library/web-ping:v2 0.0s
=> => unpacking to docker.io/library/web-ping:v2
파일 수정 후 이미지 빌드 종료 -------------------------------------------------------------
도커 이미지 빌드할때는 수정되지 않은경우 캐시된 정보를 이용하고
수정 된 경우에는 정보를 새로 불러다 씀
위 내용같은경우는 도커파일내용이
FROM diamol/node
ENV TARGET="blog.sixeyed.com"
ENV METHOD="HEAD"
ENV INTERVAL="3000"
WORKDIR /web-ping
COPY app.js .
CMD ["node", "/web-ping/app.js"]
의 형식이었는데
app.js의 가장 하단부분에 공백을 붙여 저장한 후
다시 빌드하니 app.js를 캐시하지 않은 정보를 갖다 씀.
순서는
1. 이미지 빌드
2. app.js 수정없이 다시 이미지 빌드
3. app.js 수정 후 이미지 빌드
마지막에 CMD의 내용에 뭐가 어떻게 들어가야하나 node 라고 붙이는게 노드js를 이용하려고하는거라는데.
npm intall이고 뭐고 아무것도 없는데
흠...
도커의 이미지 레이어, 스크립트 최적화의 기본개념을 알게됐음.
728x90
댓글