【问题标题】:Is it possible to use variables in a codeship-steps.yml file?是否可以在 codeship-steps.yml 文件中使用变量?
【发布时间】:2019-03-08 00:27:10
【问题描述】:

我们目前使用 Codeship Pro 将 Docker 镜像推送到 AWS 上的私有注册表,并将这些镜像部署到 ECS 集群。

但是,codeship-steps.yml 文件包含我要推送到的 AWS 区域的硬编码区域名称。例如:

- name: push_production
  service: app
  type: push
  image_name: 123456789012.dkr.ecr.us-east-1.amazonaws.com/project/app-name
  image_tag: "{{.Timestamp}}"
  tag: master
  registry: https://123456789012.dkr.ecr.us-east-1.amazonaws.com
  dockercfg_service: aws_generator

我希望能够相当轻松地将其切换为部署到不同的 AWS 区域。因此问题:

是否可以在 codeship-steps.yml 文件中使用变量?

我知道某些属性可以使用 Codeship 提供的少数内置变量(例如用于 image_tag 属性的 {{.Timestamp}} 值),但我不知道是否可以使用值来自env_file 可用于步骤的image_nameregistry 和/或command 属性。

我在想象这样的事情......

codeship-steps.yml

- name: push_production
  service: app
  type: push
  image_name: "123456789012.dkr.ecr.{{.AWS_REGION}}.amazonaws.com/project/app-name"
  image_tag: "{{.Timestamp}}"
  tag: master
  registry: "https://123456789012.dkr.ecr.{{.AWS_REGION}}.amazonaws.com"
  dockercfg_service: aws_generator

...但这会导致“在推送步骤中解析图像名称时出错:在推送步骤中引用格式无效”。

我尝试过在image_name 中不指定注册表...

  image_name: project/app-name

...但我在推送步骤中收到“构建错误:没有基本身份验证凭据”。在这一点上,我的想法已经不多了。

【问题讨论】:

    标签: codeship


    【解决方案1】:

    是否可以在 codeship-steps.yml 文件中使用 [环境] 变量?

    虽然image_tag 可以利用Go templates,但image_nameregistry 或其他任何东西都不是这样。这是一组单独的模板变量,只有 image_tag 一代可以访问。

    对于一般环境变量(CI 环境变量或服务配置中定义的那些),这些值可以在通过 shell 命令时在命令步骤的codeship-steps.yml 中使用。例如:

    - service: app
      command: echo The branch name is: $CI_BRANCH
    

    结果:

    The branch name is: $CI_BRANCH
    

    - service: app
      command: /bin/sh -c 'echo The branch name is: $CI_BRANCH'
    

    结果:

    The branch name is: master
    

    至于您的“没有基本身份验证凭据”错误消息,您检索用于访问映像注册表的基本身份验证凭据的方式可能存在问题。如果您使用的是 MacOS 设备,我建议您查看我们的文档以了解如何generate Docker credentials

    【讨论】:

    • 感谢您的帮助,德鲁。看起来我只能忍受对区域进行硬编码,这是可以管理的。
    猜你喜欢
    • 1970-01-01
    • 2016-12-22
    • 2022-01-06
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2023-03-26
    相关资源
    最近更新 更多