You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新DockerHub私有镜像并让Azure Functions同步代码变更?

解决Docker镜像更新后Azure Functions未识别的问题

第一步:确保推送的是包含新代码的镜像

你当前推送的镜像未包含代码变更,大概率是未重新构建镜像或构建过程未正确打包新代码,按以下步骤排查修正:

  • 重新构建镜像,确保打包最新代码:
    执行命令:
    docker build -t <你的DockerHub用户名>/<私有仓库名>:latest .
    
    注意末尾的.不能省略,它指定了Docker构建的上下文目录(即你的代码所在目录)。
  • 如果构建缓存导致新代码未被打包,强制跳过缓存重新构建:
    docker build --no-cache -t <你的DockerHub用户名>/<私有仓库名>:latest .
    
  • 检查.dockerignore文件,确认没有误将你修改的代码文件/目录排除在外。
  • 推送前本地运行镜像验证:docker run -p <本地端口>:<容器端口> <你的镜像标签>,确认代码变更已生效。
  • 正确推送镜像:
    docker push <你的DockerHub用户名>/<私有仓库名>:latest
    

第二步:让Azure Functions拉取更新后的镜像

推送正确的镜像后,Azure Functions不会自动检测latest标签的变更,需手动触发更新:

  • Azure门户操作:
    1. 登录Azure门户,进入你的Functions应用。
    2. 左侧菜单选择「容器设置」。
    3. 点击页面底部的「拉取并重启」按钮,等待应用重启完成。
  • 版本号标签方式(更推荐):
    为避免latest标签的缓存歧义,建议每次更新使用带版本号的标签(如v1.1):
    1. 构建并推送新版本镜像:
      docker build -t <你的DockerHub用户名>/<私有仓库名>:v1.1 .
      docker push <你的DockerHub用户名>/<私有仓库名>:v1.1
      
    2. 在Azure门户的「容器设置」中,将「镜像和标签」修改为<你的DockerHub用户名>/<私有仓库名>:v1.1,保存后系统会自动拉取新镜像并部署。
  • Azure CLI操作:
    执行以下命令更新镜像标签并触发部署:
    az functionapp config container set --name <你的函数应用名> --resource-group <你的资源组名> --docker-custom-image-name <你的镜像标签> --docker-registry-server-url https://index.docker.io
    

内容的提问来源于stack exchange,提问作者t0wt13m5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:37:16