最近剛換了M1 的晶片,發現Docker build的時候無法使用,本機自己Build的image,當指令執行後出現如下錯誤訊息。
failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
依照過往的經驗,這樣是沒有任何問題的,當我執行列出image的命令時,image 也確實存在,而不應該去docker.io抓取,懷疑是m1的docker for desktop,執行docker build時,預設會去找arm的版本,這時候我們把改一下Dockerfile中From的命令。
FROM testimage
#改成
FROM --platform=linux/amd64 testimage
就可以使用本機的image來製作新的image。
參考資料:docker – How can I use a local image as the base image with a dockerfile? – Stack Overflow