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

如何通过GitHub Actions使用docker-compose.yml构建镜像推送到Azure Registry并部署

解决方案

前置问题修正

你当前贴出的工作流代码首先存在YAML语法错误:多行run命令使用|声明后,后续的命令行必须比run字段多缩进至少2个空格,否则GitHub Actions会直接解析失败,这是你执行报错的核心原因。

如果需要改用项目根目录的docker-compose.yml完成镜像构建和推送,按以下步骤操作即可:

步骤1:调整docker-compose.yml配置

确保你的docker-compose.yml中给需要推送的服务配置了符合Azure容器注册表要求的镜像名模板,示例参考:

version: '3.8'
services:
  sampleapp:
    build: . # 对应构建上下文路径,按需调整
    image: ${REGISTRY_LOGIN_SERVER}/sampleapp:${GITHUB_SHA}
    # 其余你自己的服务配置(端口、挂载卷等)保留即可

步骤2:替换GitHub Actions构建推送步骤

把原来的docker build/push步骤替换为以下内容:

- name: 构建并推送镜像到Azure容器注册表
  env:
    REGISTRY_LOGIN_SERVER: ${{ secrets.REGISTRY_LOGIN_SERVER }}
    GITHUB_SHA: ${{ github.sha }}
  run: |
    # 按docker-compose配置构建所有镜像
    docker-compose build
    # 自动推送所有配置了镜像地址的服务镜像
    docker-compose push

注意事项

  • 确保该步骤前已经完成了Azure容器注册表的登录操作,可使用az acr login --name <你的注册表名称>或者docker login <REGISTRY_LOGIN_SERVER>命令完成登录
  • GitHub官方提供的Ubuntu、Windows、macOS运行环境默认已预装docker-compose,无需额外安装配置
  • 如果有多个服务需要同时构建推送,只需要给每个服务在docker-compose.yml中都配置好image字段,docker-compose push会自动批量推送所有符合要求的镜像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:04