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

GitLab CI配置报错:变量定义需为字符串或哈希,求排查

GitLab CI配置错误:variable definition must be either a string or a hash

问题原因

错误提示明确指向变量定义类型不符合要求——GitLab CI要求所有变量值必须是字符串或哈希结构。你的配置中IMAGE_TAG: 1.1这一行,YAML解析器会把1.1识别为浮点数类型,而非字符串,这直接违反了GitLab CI的变量类型规则,导致解析失败。另外,DEV_SERVER_HOST: 3.239.229.167虽然IP地址通常不会被误解析,但为了避免潜在的YAML解析问题,建议统一用引号包裹。

解决方法

将变量值用双引号或单引号包裹,强制YAML解析为字符串类型。修改后的variables部分如下:

variables:
  IMAGE_NAME: $CI_REGISTRY_IMAGE
  IMAGE_TAG: "1.1"
  DEV_SERVER_HOST: "3.239.229.167"

额外优化建议(非必须)

deploy_to_dev的script中的多行ssh命令,可使用YAML折叠块语法>提升代码可读性,避免引号换行的潜在问题:

deploy_to_dev:
  stage: deploy
  tags:
    - ec2
    - shell
    - remote
  script:
    - >
      ssh -o StrictHostKeyChecking=no -i $SSH_PRIVATE_KEY ubuntu@$DEV_SERVER_HOST "
      docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY &&
      docker run -d -p 3000:3000 $IMAGE_NAME:$IMAGE_TAG"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:46:46