Google Cloud Build yaml构建配置同一步骤中如何分隔多个不同args参数
Google Cloud Build 同步骤执行多条命令解决方案
报错根因
Google Cloud Build 的args字段默认会直接作为参数传递给容器的ENTRYPOINT执行,不会经过shell解析。你当前配置中把update;作为apt-get的第一个参数传入,因此系统会识别为你给apt-get update传递了多余参数,触发对应报错。
正确配置方法
你需要显式指定shell作为入口点,通过shell的-c参数传入完整的多命令串,示例配置如下:
- name: ubuntu entrypoint: bash args: - -c - apt-get update && apt-get install -y curl
如果需要写多行命令更易读,也可以用YAML的多行字符串语法:
- name: ubuntu entrypoint: bash args: - -c - | apt-get update apt-get install -y curl # 还可以继续添加更多需要执行的命令
补充说明
- 如果使用的基础镜像没有预装
bash,可以将entrypoint换成sh,绝大多数Linux基础镜像都默认内置sh - 多条命令之间用
&&分隔时,前序命令执行失败后后续命令会自动终止;用;分隔时,无论前序命令是否执行成功,后续命令都会运行,可根据实际需求选择分隔符
内容的提问来源于stack exchange,提问作者Lealem
相关产品推荐
相关产品推荐

