YAML (Yet Another Markup Language) とは?
YAML (Yet Another Markup Language) は、構造化されたデータをテキスト形式で表現するためのフォーマットの1つで、人間が読みやすいように設計されています 。
このフォーマットには、ブロックスタイルとフロースタイルの2種類の書き方があります 。
ブロックスタイルとフロースタイル
ブロックスタイルとフロースタイルの記述方法の違いを紹介します。
ブロックスタイル
ブロックスタイルは、各データ項目をインデントを使って明確に区切り、階層構造を表現することができます。
以下は、ブロックスタイルを使ったサンプルです:
- name: John Doe
age: 30
address:
street: 123 Main St
city: San Francisco
state: CA
フロースタイル
一方、フロースタイルは、データ項目をカンマまたはスペースで区切り、階層構造を表現することができません。
以下は、フロースタイルを使ったサンプルです:
- { name: John Doe, age: 30, address: { street: 123 Main St, city: San Francisco, state: CA } }
基本的に、ブロックスタイルは、階層構造をより明確に表現する場合に適していますが、フロースタイルは、単純なデータ表現に適しています。
- ブロックスタイル:階層構造をより明確に表現する場合に適している
- フロースタイル:単純なデータ表現に適している
YAMLはどういうところで使われているの?
YAMLは、構造化データを表現するために幅広く使われていて、代表的な使用例には以下があります。
YAML が幅広く使われている理由を以下にまとめておきます。
- 人間が読み書きできるシンプルな構文
- 構造化データを表現することができる
- および外部ツールとの互換性が高い
補足説明
作成する際には、大文字と小文字を区別することや、インデントなどに基本的なルールがあることも覚えておく必要があります。
YAMLを使うことで、データをスキマなく記述することができる上に、JSONやXMLといった他のフォーマットと比べてシンプルな記述が可能であり、高い可読性を持ちます。
Docker Compose ファイルの例
ここからは、Docker Compose で使用される YAML 形式の「docker-compose.yml」ファイルに限定して説明します。
このファイルを定義することで複数の Docker コンテナを一つのコマンドで実行することができます。
WordPress を起動するサンプル
まずディレクトリを作成し、移動します。
$ mkdir wordpress $ cd wordpress
そして、このディレクトリ内に以下の内容の「docker-compose.yml」を保存します。
version: '3.1'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
コマンドを実行後、ブラウザで「http://localhost:8080」を開くとWordPressの初期画面が表示されるはずです。
詳しくは以下の記事を参照してください。