Oracle Cloud使用Cloud Shell部署Python函数遇部署错误求助
问题分析与解决方案
一、首要修正:Runtime选型错误
你目标是创建Python函数,但初始化时误用了--runtime java参数,导致生成的是Java项目结构与Dockerfile,完全不符合需求。先重新初始化正确的Python项目:
# 返回上级目录并删除错误的Java项目 cd .. rm -rf hello-test-python # 用Python Runtime初始化项目 fn init --runtime python hello-test-python cd hello-test-python
二、Docker构建错误(exit status 125)排查与修复
exit status 125属于Docker命令执行失败,结合你的Cloud Shell环境,按以下步骤逐一排查:
1. 验证Docker基础功能
先确认Docker服务是否正常运行:
# 测试Docker基础连接 docker run --rm hello-world # 手动拉取Python FDK镜像,验证网络与权限 docker pull fnproject/fn-python-fdk:latest
如果hello-world运行失败,直接重启Cloud Shell(关闭后重新打开);如果镜像拉取失败,检查OCIR登录状态或网络连通性。
2. 修正架构配置冲突
你的输出显示TargetedPlatform: amd64_arm64HostPlatform: amd64,架构配置存在冲突,执行命令强制指定amd64架构:
fn update context fn.platform amd64
3. 手动执行Docker构建,获取详细错误日志
跳过fn工具,直接用Docker命令构建,能得到更具体的报错信息:
# 替换为你的实际registry地址 docker build -t **********/func-python/hello-test-python:0.0.2 .
根据输出的日志定位问题,比如镜像拉取失败、依赖安装错误等,针对性处理。
4. 确认Fn上下文配置正确性
检查compartment ID与registry地址是否有误:
fn list context fn get context eu-marseille-1
确保oracle.compartment-id格式正确,registry地址符合region.ocir.io/租户命名空间/仓库名的规范。
三、重新执行部署
完成以上修正后,重新运行部署命令:
fn -v deploy --app DBDB_IO_Refresher
内容的提问来源于stack exchange,提问作者Pierre-AntoineAETP
相关产品推荐
相关产品推荐

