docker - deptno/deptno.github.io GitHub Wiki

docker

μ»¨ν…Œμ΄λ„ˆ

brew install --cask docker 

arg vs env

ARG JS

COPY ./$JS ./packages/$JS
CMD node $JS

λ‘˜λ‹€ $JS 둜 ν‘œν˜„λ˜κ³  μžˆμ§€λ§Œ μ‚¬μš©λ˜λŠ” ꡬ문에 따라 ARG κ°€ 참쑰될지 ENV κ°€ 참쑰될지 κ²°μ •λœλ‹€

  • arg

    • build time 에 μ‚¬μš©λ˜λ―€λ‘œ COPY λ“± 이미지가 λ§Œλ“€μ–΄μ§€λŠ” 타이밍에 μ‚¬μš©λœλ‹€
  • env

    • runtime 에 μ‚¬μš©λœλœλ‹€. CMD κ°€ μ‹€ν–‰λ˜λŠ” 타이밍은 runtime μ΄λ―€λ‘œ envκ°€ μ°Έμ‘°λœλ‹€
  • 주의 ν•΄μ•Όν•  점은 μ‚¬μš©μ„ ν•΄λ³΄λ‹ˆ FROM 절 μ „/ν›„μ˜ ARG μ‚¬μš© μš©λ„κ°€ λ‹€λ₯΄λ‹€

    • FROM μ „μ˜ ARG λŠ” FROM μ ˆμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€
    • FROM μ „μ˜ ARG λŠ” FROM ν›„μ˜ μ ˆμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜μ§€ μ•Šλ‹€
    • FROM ν›„μ˜ ARG λŠ” FROM 이 ν›„ μ ˆμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€
    • FROM ν›„μ˜ ARG λŠ” FROM μ ˆμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜μ§€ μ•Šλ‹€

build

docker build . -f [Dockerfile.custom]
docker build . --no-cache # κ²°κ³Ό μΊμ‹±ν•˜μ§€ μ•ŠμŒ, stdout 좜λ ₯ ν•„μš”μ‹œμ—λ„ μ‚¬μš©
docker build . --pull # pull μ˜΅μ…˜μ„ ν†΅ν•΄μ„œ 항상 리λͺ¨νŠΈ 이미지λ₯Ό μ‚¬μš©ν• μ§€ 결정이 κ°€λŠ₯
docker build . --progress=plain # 기본적으둜 ν”„λ‘œκ·Έλ ˆμŠ€ ν…μŠ€νŠΈ(λ³€ν•˜λŠ” ν…μŠ€νŠΈ)λ₯Ό λ³΄μ—¬μ£ΌλŠ”λ° 이λ₯Ό plain text λ₯Ό 좜λ ₯ν•˜λŠ”κ²Œ μ’‹μŒ

error

container κ°€ 싀행쀑에 μ•„λž˜μ™€ 같은 ν˜•νƒœμ˜ μ—λŸ¬λ₯Ό λ‚Έλ‹€λ©΄ architecture 문제 즉 arm64 둜 λΉŒλ“œλœ 이미지가 amd64 μ—μ„œ μ‹€ν–‰λœ 경우

exec /whoami: exec format error                                                                                                              β”‚

μ•„λž˜μ™€ 같은 ν˜•νƒœλ‘œ ν”Œλž«νΌμ„ μ§€μ •ν•΄μ„œ pull 이 κ°€λŠ₯ν•˜λ‹€

docker pull --platform [linux/amd64] [image-name]

STEP 9/9: RUN yarn --immutable
➀ YN0000: β”Œ Resolution step
➀ YN0000: β”” Completed
➀ YN0000: β”Œ Fetch step
➀ YN0000: β”” Completed
➀ YN0000: β”Œ Link step
➀ YN0008: β”‚ puppeteer@npm:19.6.2 must be rebuilt because its dependency tree changed
➀ YN0009: β”‚ puppeteer@npm:19.6.2 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-2807b8a5/build.log)
➀ YN0000: β”” Completed in 0s 487ms
➀ YN0000: Failed with errors in 0s 792ms
Error: building at STEP "RUN yarn --immutable": while running runtime: exit status 1
[Warning] one or more build args were not consumed: [TARGETARCH TARGETOS TARGETPLATFORM]

COPY packages ./packages 컨텐츠 변경에도 μΊμ‹œκ°€ μœ μ§€λ˜λŠ” 문제

COPY packages ./packages

ν΄λ”μ•ˆμ˜ μƒˆλ‘œμš΄ 폴더가 μƒμ„±λ˜μ—ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  λ ˆμ΄μ–΄κ°€ μΊμ‹œλ˜λŠ” λ¬Έμ œκ°€ μžˆλ‹€.

failed to solve with frontend dockerfile.v0: failed to create LLB definition: no build stage in current context

λ‘˜ 쀑 ν•˜λ‚˜ 확인λͺ»ν•¨

  • ENV λŠ” FROM 전에 갈수 μ—†λ‹€
  • ARG λ₯Ό 잘λͺ» μ“΄ κ²ƒμœΌλ‘œ 보인닀
  • build 쀑 ctrl+c 둜 μ·¨μ†Œν•˜λ©΄μ„œ λ¬Έμ œκ°€ 생긴 κ²ƒμœΌλ‘œ 보인데 λΉŒλ“œλ˜λ‹€λ§Œ 이미지λ₯Ό μ‚­μ œν•œλ‹€
    • Docker desktop -> μš°μƒλ‹¨μ˜ debug μ•„μ΄μ½˜ -> Clean / Purge data

ERROR [internal] load metadata for [image]:[tag]

항상 λΉŒλ“œλ˜λ˜ λ‹€μ»€λΉŒλ“œμ‹œμ— λ°œμƒν–ˆλŠ”λ° apt-get update λ₯Ό μ§„ν–‰ν•˜λŠ”μ€‘μ— λ°œμƒν–ˆλ‹€. μ’€ 관련이 μ—†μ–΄λ³΄μ΄μ§€λ§Œ κ²°κ΅­ docker system prune 으둜 ν•΄κ²°λ˜μ—ˆλ‹€

ERROR [internal] load metadata for [image]:[tag]

λ‹€λ₯Έ λΉŒλ“œλ₯Ό ν• λ•ŒλŠ” μš©λŸ‰ 뢀쑱에 λŒ€ν•œ μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€

failed to register layer: Error processing tar file(exit status 1): write /home/pptruser/.cache/puppeteer/chrome/linux-113.0.5672.63/chrome-linux64/ClearKeyCdm/_platform_specific/linux_x64/libclearkeycdm.so: no space left on device

FROM μ ˆμ—μ„œ μ°Έμ‘°ν•  수 μ—†λŠ” 이미지λ₯Ό μ°Έμ‘°ν•œ 경우

At least one invalid signature was encountered.

docker system prune

link