YAMLとは
YAMLとは、配列や連想配列などの構造化されたデータを表現できるテキストフォーマットの1つです。
似た目的で使われるものにJSONやINI、XMLなどがありますが、
YAMLはその中でもインデントが必須であったり、文字列のクォートが不要であったりと、読み書きのしやすいフォーマットです。
YAMLのいいところ
・コメント書ける(JSONは書けない)
・文字列のクォートが不要(数値や真偽値などとして判定されない文字列なら)
・インデントが強制されるので読みやすい
YAMLの文法
YAMLは自由度が高くいろいろな書き方ができますが、基本だけまとめます。
基本
-
ハッシュ
基本はキーバリュー(連想配列)の形
属性名(キー)と値をコロンで区切る
key01: value01
key02: value02
-
配列
頭にハイフン + スペース
list:
- element01
- element02
- element03
-
ネスト
要素の入れ子はスペース2つ
parent:
child:
child_attr01: 100
child_attr02: 200
-
コメント
先頭に"#"で一行コメント
インラインコメントも可能
# This is comment.
name: john
age: 22 # This is comment too.
データ型
YAMLの値はいくつかの型を表現できます。(この他にも日付型等もある)
- 文字列
- 数値
- 真偽値
- NULL
-
文字列
通常は文字列扱い
string: hello!
-
数値
数字のみの場合は数値として扱われる
number: 3
-
真偽値
true or false(全て小文字)で真偽値
bool01: true
bool02: false
-
NULL
null(全て小文字)でNULL
null: null
-
数値のみや"null"などの文字列
クォート(シングル or ダブル)で囲うことで文字列であることを明示
not_number: "3"
not_null: "null"
もう一つの書き方
JSONっぽい書き方もあります。これを「フロースタイル」といいます。
(通常の書き方は「ブロックスタイル」)
※本当はJSONは全てブロックスタイルで書いたYAMLなので、YAMLが先
- 配列(フロースタイル)
[element01, element02, element03]
- ハッシュ(フロースタイル)
{key01: value01, key02: value02, key03: value03}
ブロックスタイルとの混在も可
list01:
- element01
- element02
list02:
[element01, element02, element03]
hash01:
key01: value01
key02: value02
hash02:
{key01: value01, key02: value02, key03: value03}
Return
Dockerコンテナ構築手順② Docker Compose編
https://qiita.com/aminosan000/private/6f1d1b1e730e01907fbc