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

GCP VM启动脚本无法执行Docker Compose启动Kafka容器问题

GCP启动脚本容器未启动问题排查与修复

问题根源

  • sudo cd 无效:每个sudo都是独立进程,sudo cd只会在当前sudo进程里切换目录,后续的docker-compose还是在脚本初始目录执行,根本找不到目标yml文件。
  • 路径占位符没替换:脚本里的/home/XXXX、/home/XXXXXXX这类占位符如果没换成真实存在的目录,克隆、移动文件都会失败。
  • 环境变量不兼容:启动脚本以root身份运行时,PATH可能没包含/usr/local/bin,导致找不到刚装的docker-compose。

修复后的完整脚本

#!/bin/bash
# 更新系统包
apt update
apt install -y docker.io

# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 替换成你的真实用户目录
APP_DIR="/home/your-real-user/app"
TARGET_DIR="/home/your-real-user"

# 克隆仓库并移动配置文件
git clone https://github.com/XXXXX/Nodejs_Kafka.git $APP_DIR
mv "$APP_DIR/docker-compose.yml" "$TARGET_DIR/docker-compose.yml"

# 切换目录并启动容器(链式执行确保目录生效)
cd "$TARGET_DIR" && docker-compose up -d

额外排查技巧

  • 看启动日志找错误:GCP启动脚本的执行日志在/var/log/cloud-init-output.log里,执行cat /var/log/cloud-init-output.log就能看到哪一步出问题了。
  • 确认目录真实存在:所有写进脚本的目录必须是虚拟机上已经存在的,比如/home/your-real-user得是实际创建的用户目录,不然移动文件会失败。
  • 确保Docker服务启动:可以在安装docker后加一行systemctl enable --now docker,保证Docker服务完全启动后再执行后续命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:03:20