【问题标题】:How to lint a yaml and ignore multiple "depends_on"?如何对 yaml 进行 lint 并忽略多个“depends_on”?
【发布时间】:2019-10-02 09:36:13
【问题描述】:

我编写了一个使用 docker-compose.yml 文件创建本地开发环境的脚本。

在运行脚本时,我想在升级环境之前使用 yaml linter 命令来验证文件是否是有效的 yaml,为此我正在使用命令 yamllint。

在这个 docker-compose.yml 文件中,有多个服务“依赖”另一个服务,但是当我运行 yamllint 时,它返回以下错误:

47:5      error    duplication of key "depends_on" in mapping  (key-duplicates)

这不是真正的错误,但由于 lint 是脚本运行的一部分,所以我不能指望它的退出代码,因为它将此错误视为错误,而实际上并非如此。

docker-compose.yml 文件的示例部分:

  microservice-one:
    image: ms-one:feature-local_development_env
    environment:
      NODE_ENV: 'development'
      NPM_TOKEN: 'SECRET'
    ports:
      - "3013:3000"
    depends_on:
      - redis-cluster
  microservice-two:
    image: ms-two:feature-local_development_env
    environment:
      NODE_ENV: 'development'
      NPM_TOKEN: 'SECRET'
    ports:
      - "3014:3000"
    depends_on:
      - redis-cluster
networks:
  default:

是否还有其他您知道的不会将多个“depends_on”计为错误的命令行 yaml linter?

【问题讨论】:

    标签: yaml lint


    【解决方案1】:

    我找到了我的答案,并认为我会与到达这里的任何人分享。

    所以解决方法是通过创建特定的 yamllint 配置文件来覆盖 yamllint 的默认配置。

    在我的例子中,文件如下所示:

    extends: default
    
    rules:
      key-duplicates: disable
    

    然后,我像这样运行命令:

    yamllint -d config_file docker-compose.yml
    

    更多选项可以在yamllint's official documentation page找到,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 2014-06-23
      • 2016-05-10
      • 1970-01-01
      • 2018-11-06
      • 2014-02-02
      相关资源
      最近更新 更多