シェルスクリプトでymlファイルを変更できますか?

シェルスクリプトでymlファイルを変更できますか?

これが私のdocker-compose.ymlの外観です。

nginx:
  container_name: 'nginx'
  image: 'nginx:1.11'
  restart: 'always'
  ports:
    - '80:80'
    - '443:443'
  volumes:
    - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro'
  links:
    - 'anything'

これで(Ubuntuサーバー上)シェルスクリプトを介して何かを追加する必要があります。これが可能かどうかはわかりません。

  1. nginx/links存在しない場合は新しい要素を追加
  2. newthingnewthing-block がない場合は、ブロックを追加します。

新しいコンテンツは次のようになります。

nginx:
  container_name: 'nginx'
  image: 'nginx:1.11'
  restart: 'always'
  ports:
    - '80:80'
    - '443:443'
  volumes:
    - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro'
    - '/etc/letsencrypt:/etc/letsencrypt'
  links:
    - 'anything'
    - 'newthing'

newthing:
  container_name: foo
  image: 'newthing:1.2.3'
  restart: always
  hostname: 'example.com'

ベストアンサー1

私は書いたhttps://github.com/kislyuk/yq、ラッパーhttps://stedolan.github.io/jq/、このユースケースを解決するには。

おすすめ記事