YAML

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は、構造化データを表現するために幅広く使われていて、代表的な使用例には以下があります。

  • DevOps ツール:
    • Ansible, Travis CI, Jenkins など
  • プログラミング言語:
  • クラウドインフラストラクチャー:
    • AWS CloudFormation, Google Cloud Platform, Microsoft Azure など
  • API スキーマ:
    • Swagger, RAML, Blueprint など

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の初期画面が表示されるはずです。

詳しくは以下の記事を参照してください。

タイトルとURLをコピーしました