alpine/func该Docker镜像提供了一个预配置的容器化环境,用于部署、开发和测试Azure Function Apps。基于Azure Functions Python基础镜像(4-python3.10),集成了Azure Functions Core Tools 4、Azure CLI和.NET SDK 6.0,解决了直接在主机安装时占用空间大(原安装约2.5GB,含依赖后更大)的问题,适用于需要在隔离环境中执行func publish等命令的场景,尤其适合CI/CD流水线。
az login)func azure functionapp publish发布Azure函数Dockerfile内容
dockerfile# 基于Azure Functions Python基础镜像 FROM mcr.microsoft.com/azure-functions/python:4-python3.10 # 安装Azure CLI RUN pip3 install azure-cli # 安装Azure Functions Core Tools 4 RUN apt-get update && \ apt-get install -y curl gpg lsb-release && \ curl [***] | gpg --dearmor > microsoft.gpg && \ mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg && \ echo "deb [arch=amd64] [***] -rs | cut -d'.' -f 1)/prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list && \ apt-get update && \ apt-get install -y azure-functions-core-tools-4 # 安装.NET SDK 6.0 RUN wget [***] -O packages-microsoft-prod.deb && \ dpkg -i packages-microsoft-prod.deb && \ rm packages-microsoft-prod.deb && \ rm /etc/apt/sources.list.d/mssql-release.list && \ apt-get update && \ apt-get install -y dotnet-sdk-6.0
构建命令
在Dockerfile所在目录执行:
bashdocker build -t func .
构建完成后可通过docker images | grep func查看镜像,默认标签为latest,大小约3.43GB。
启动容器
挂载本地函数代码目录并进入交互终端:
bashdocker run -ti --rm -v $(pwd):/apps -w /apps func bash
-ti:交互式终端--rm:退出后自动删除容器-v $(pwd):/apps:挂载本地当前目录到容器内/apps,便于访问函数代码-w /apps:设置工作目录为/appsAzure身份验证
在容器内执行az login完成Azure账号登录:
bashaz login
(根据提示完成登录,支持设备登录或服务主体登录)
发布函数到Azure
使用func命令发布函数应用:
bashfunc azure functionapp publish <function_app_name>
其中<function_app_name>替换为目标Azure Function App的名称。
如需调试发布过程,可设置环境变量CLI_DEBUG=1开启调试模式:
bashexport CLI_DEBUG=1 func azure functionapp publish <function_app_name>

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务