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つです。
また、AWSのマニュアルも最新のものは.yml
が使われているので、もはや.yml
一択で問題ないと思われます。
問題なく動くのか?
もちろんファイルの拡張子を「.yml」から「.yaml」に変更しても問題なく動きます。
試しに、docker-compose.yml
をdocker-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(ヤムル)とは何か?書き方や記号 &, *, <<, #, ~ の意味や使い方を実例で解説