私有Bitbucket仓库部署Azure Function时Git LFS报错求助
解决Bitbucket仓库部署Azure Function时Git LFS缺失问题
部署过程中出现git-lfs: not found错误,核心原因是Azure部署中心的Linux运行环境默认未安装Git LFS,无法处理LFS托管的文件。针对非GitHub仓库,可通过以下几种方法解决:
方法1:自定义部署脚本前置安装Git LFS
在Bitbucket仓库根目录添加两个文件,让Azure部署时先安装Git LFS再执行部署:
创建
.deployment文件,内容如下:[config] command = deploy.sh创建
deploy.sh脚本(需赋予执行权限),内容示例:#!/bin/bash # 安装Git LFS依赖 sudo apt-get update > /dev/null sudo apt-get install -y git-lfs > /dev/null # 初始化Git LFS并拉取LFS文件 git lfs install --skip-repo git lfs pull # 执行Azure Functions默认部署流程 /opt/Kudu/Scripts/deploy.sh该脚本会在部署前完成Git LFS的安装和文件拉取,再调用Azure默认的部署脚本。
方法2:使用Bitbucket Pipelines构建部署包
通过Bitbucket的CI/CD流程直接生成部署包并上传到Azure,绕过Git部署中心的LFS限制:
编写bitbucket-pipelines.yml配置文件,示例如下:
image: python:3.9 pipelines: branches: dev: - step: name: 构建并部署Azure Function script: - pip install azure-functions-core-tools - # 安装项目依赖(包括本地whl文件) - pip install deps/llm_evaluator-1.1.2-py3-none-any.whl - # 生成部署包 - func pack --build-native-deps -o function.zip - # 通过服务主体登录Azure(需提前配置仓库环境变量) - az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID - # 部署到目标Function App - az functionapp deployment source config-zip --resource-group <你的资源组名> --name <你的函数应用名> --src function.zip
将Azure服务主体的相关信息配置为Bitbucket仓库的环境变量,即可实现代码提交后自动部署。
方法3:手动生成Zip包部署
直接在本地或构建环境生成包含所有依赖的部署包,上传到Azure Function:
- 确保本地项目目录中已包含
llm_evaluator-1.1.2-py3-none-any.whl文件 - 生成部署包(排除Git目录和虚拟环境):
zip -r function.zip . -x "*.git*" "venv/*" - 通过Azure CLI上传部署:
az functionapp deployment source config-zip --resource-group <资源组名> --name <函数应用名> --src function.zip
内容的提问来源于stack exchange,提问作者Jan Čáp
相关产品推荐
相关产品推荐

