如何抹去Yaml并忽略多个“ depends_on”?

时间:2019-10-02 09:36:13

标签: yaml lint

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

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

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

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

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

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:

您是否知道其他任何命令行yaml linter都不会将多个“ depends_on”视为错误?

1 个答案:

答案 0 :(得分:0)

我找到了答案,并想与任何来这里的人分享。

因此,解决方案是通过创建特定的yamllint配置文件来覆盖yamllint的默认配置。

就我而言,该文件如下所示:

extends: default

rules:
  key-duplicates: disable

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

yamllint -d config_file docker-compose.yml

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