拡張子ymlとyamlファイルの違いは何か?どちらを使うべきか?(どっちがいいか?)

text-file-prograshi(プロぐらし)-kv JSON
記事内に広告が含まれていることがあります。

Dockerを使っているときに大本となるdocker-composeファイルでは拡張子に「.yml」が使われています。

他にも、Ruby on Railsのデータベースの情報が記載してあるdatabaseファイルの拡張子も「.yml」です。

ところが、AWSのCodeBuildではイメージのビルドとテストを自動化する際に仕様書の拡張子に「.yaml」が使われています。

「.yaml」は決してタイプミスではありません。

「.yml」も「.yaml」もよく似ていて、中のファイルの記述方法もよく似ています。

ここでは、拡張子「.yml」も「.yaml」の違いは何か?どちらを使うべきかについてまとめています。


ymlとyamlファイルの違いは何か?

結論から言うと、拡張子「.yml」も「.yaml」は同じです。両方ともヤムル型式のファイルであることを表しています。

このため、どちらを使っても問題ありません

違いは、3文字か4文字のどちらで表記するかだけです。


なぜ2つ存在するのか?

ヤムルファイルであることを示す正式な拡張子は.yamlです。

ですが、一般的に拡張子は3文字で記載されます。.txt, .zip, .exe, .png,,,などどれも3文字表記です。

この3文字ルールに合わせたのが.ymlです。

写真形式のファイルであることを表す拡張子「.jpeg」が「.jpg」と書いてもいいのと同じです。


どちらを使うべきか?

主観ですが、「.yml」を使う方がいいと思います。

主な理由は以下3つです。

.ymlを使うべき理由
  1. docker-composeで十分に浸透している。
  2. 問題なく動く
  3. 文字数が少なくシンプル

また、AWSのマニュアルも最新のものは.ymlが使われているので、もはや.yml一択で問題ないと思われます。


問題なく動くのか?

もちろんファイルの拡張子を「.yml」から「.yaml」に変更しても問題なく動きます。

試しに、docker-compose.ymldocker-compose.yamlに変更してビルドしてみました。

ビルドを実行。

$ docker-compose build app1
Building app1
Step 1/8 : FROM node:12
 ---> 82c222f66a6c
.
.
.
Successfully built d3fc36986c18
Successfully tagged testapp1:latest

問題なくうごきます。


参考

ヤムルはJSONなどとも互換性があり、かつJSONよりも少ないコード数で記述できるなど利点が大きく、最近では広く使われています。

「.yaml」や「.yml」ファイルの記述方法の詳細については下記をご参考ください。

(参考).ymlや.yaml(ヤムル)とは何か?書き方や記号 &, *, <<, #, ~ の意味や使い方を実例で解説


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