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

Google Cloud Build中Docker Compose执行失败,本地运行正常求助

问题修复方案

一、Cloud Build执行docker-compose失败的修正

  1. 参数格式错误修复
    你的cloudbuild.yaml中,-f和配置文件路径被合并成了一个参数,这是导致执行失败的核心原因。修正后的配置如下(注意核对你的配置文件名是否为docker-compose.yml,你原代码里写的是docker_compose.yml,需保持一致):
    steps:
      # running docker-compose
      - name: 'docker/compose:1.26.2'
        args: ['up', '-d', '-f', './docker-compose.yml', '--pull=always']
    
  2. 关键提示
    即使参数修正后执行成功,Cloud Build的构建环境是临时的——构建任务结束后,所有运行的容器都会被销毁,因此这种方式并不适合部署长期运行的Firefly III服务。Cloud Build的定位是构建镜像,而非持续运行容器。

二、控制台执行成功但无法访问容器的排查点

如果是在Google Compute Engine(GCE)实例中执行命令成功但无法访问,按以下步骤检查:

  • 防火墙规则配置:在GCP控制台的「VPC网络-防火墙规则」中,添加允许外部访问Firefly III端口的规则。目标标签设为你的实例标签,来源IP设为0.0.0.0/0(或你的设备固定IP),协议端口选择tcp:8080(对应docker-compose中映射的主机端口,需和你的配置一致)。
  • 端口映射验证:确认docker-compose.yml中Firefly III服务的ports配置正确,比如8080:80,确保容器内端口已映射到主机端口。
  • 实例IP确认:访问时使用GCE实例的外部IP,而非内部IP,且实例已分配有效的外部IP地址。
  • 容器状态检查:执行docker ps确认Firefly III容器处于Up状态;执行docker logs <容器名称/ID>查看启动日志,排查是否有服务启动失败的报错。

三、推荐的Firefly III部署方式

基于你的场景,更稳定的部署方式是直接在GCE实例上运行docker-compose:

  1. 在GCP控制台创建GCE实例,选择合适的机器规格,启用「允许HTTP/HTTPS流量」选项(或后续手动配置防火墙)。
  2. 登录实例,安装Docker和Docker Compose。
  3. 将你的docker-compose.yml上传到实例(可使用gcloud compute scp命令或Git同步)。
  4. 执行docker compose up -d启动服务,容器会在实例上持续运行,配合正确的防火墙规则即可正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:47:17