无法将容器镜像部署到Cloud Run。

3

当我尝试将镜像部署到Cloud Run时,出现了以下"权限被拒绝"的错误:

应用程序启动失败:无法创建初始化进程: 加载/usr/local/bin/dumb-init失败:权限被拒绝

Dockerfile包含以下指令:

....
....
ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 /usr/local/bin/dumb-init
RUN chmod +x /usr/local/bin/dumb-init
....
....
ENTRYPOINT ["dumb-init", "--"]

该图像在本地成功运行,但由于上述错误无法部署到Cloud run。


我没有答案。我不确定你在Cloud Run中使用dumb-init想要实现什么。但是,你需要启动一个能够响应$PORT上的HTTP请求的进程,否则Cloud Run会杀死你的容器。你没有包含足够的项目内容来重现任何东西。 - John Hanley
1
据我所知,@JohnHanley是正确的,你应该启动一个监听PORT环境变量的进程。但这并不能真正解释“permission denied”错误。另外请注意,Cloud Run不允许将额外的参数传递给您的进程,因此实际上您正在执行["dumb-init", "--"]。我很惊讶它在本地可以正常运行。 - ahmet alp balkan
我遇到了同样的问题,你可以应用这个更改来解决它。 - sonerokur
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

直接下载二进制文件 由于dumb-init作为静态链接的二进制文件发布,因此您通常可以将其放入您的镜像中。以下是在Dockerfile中执行此操作的示例:

RUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64

RUN chmod +x /usr/local/bin/dumb-init

更多有关直接下载二进制文件的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,