【Azure App Service for Container】记一次拉取镜像失败的特殊情况

简介: 【Azure App Service for Container】记一次拉取镜像失败的特殊情况

问题描述

使用Azure App Service For Container 拉取 应用镜像,发现拉取失败。

错误消息:

“Image pull failed since Inspect image returned null: xxxxxxx.azurecr.cn/dataapi:20230830V2.0”

CreateImageAsync() for xxxxxxx.azurecr.cn/dataapi:20230830V2.0 failed with Ex : DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get \"https://xxxxxxx.azurecr.cn/v2/dataapi/manifests/20230830V2.0 \": unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information."}

 

问题解答

在App Service 的Kudu站点中检查docker日志,发现拉取镜像遇见错误

ERROR - failed to register layer: Error processing tar file(exit status 1): Container ID 1389985163 cannot be mapped to a host ID

这说明容器镜像中使用的UID ‘1389985163’ 超出了App Service 所在虚机允许的 UID范围。因在构建镜像时,使用 docker build --squash 命令构建的 Image 中仍然包含多层 fs layer。该方法无法解决特殊owner uid的问题。

 

解决方法有

方式一: 更改base image避免了引入包含特殊owner uid的文件目录

方式二:通过 docker export / docker import 的方法生成只有一层fs layer的镜像。

docker export container-id -o tarfile
docker import tarfile newimage:version



方式三:使用以下命令更改owner,并使用docker export/docker import  生成新的镜像

RUN find /usr/local/lib/node_modules/ ! -user root | xargs chown root:root

 

 

参考资料

Docker User Namespace remapping issues : https://azureossd.github.io/2022/06/30/Docker-User-Namespace-remapping-issues/index.html#npm-based-projects-causing-userns-remap-exceptions

相关文章
|
9天前
|
缓存 容器 Perl
【Azure Container App】Container Apps 设置延迟删除 (terminationGracePeriodSeconds) 的解释
terminationGracePeriodSeconds : 这个参数的定义是从pod收到terminated signal到最终shutdown的最大时间,这段时间是给pod中的application 缓冲时间用来处理链接关闭,应用清理缓存的;并不是从idel 到 pod被shutdown之间的时间;且是最大时间,意味着如果application 已经gracefully shutdown,POD可能被提前terminated.
|
13天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
12天前
|
Java 开发工具 Windows
【Azure App Service】在App Service中调用Stroage SDK上传文件时遇见 System.OutOfMemoryException
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
|
13天前
|
安全 Apache 开发工具
【Azure App Service】在App Service上关于OpenSSH的CVE2024-6387漏洞解答
CVE2024-6387 是远程访问漏洞,攻击者通过不安全的OpenSSh版本可以进行远程代码执行。CVE-2024-6387漏洞攻击仅应用于OpenSSH服务器,而App Service Runtime中并未使用OpenSSH,不会被远程方式攻击,所以OpenSSH并不会对应用造成安全风险。同时,如果App Service的系统为Windows,不会受远程漏洞影响!
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
535 7
|
1月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
652 1
|
23天前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
1月前
|
JavaScript 前端开发 小程序
uniapp一个人开发APP关键步骤和考虑因素
uniapp一个人开发APP关键步骤和考虑因素
129 1
uniapp一个人开发APP关键步骤和考虑因素
|
1月前
|
JavaScript 前端开发 UED
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
84 9

热门文章

最新文章

下一篇
无影云桌面