はじめに
現在プログラミングスクールRUNTEQで学習中です。
カリキュラムのテストコードをダウンロードし、課題がクリアできているか確認したところ
Selenium::WebDriver::Error::JavascriptError:
このエラーが大量発生しました。
ブラウザでの動きも問題ない。
なんならこのまま課題を提出してもLGTM。
結論から言うとdocker-compose.ymlの
chrome:
image: seleniarm/standalone-chromium:121.0
この部分のバージョンエラーだったのですが、同じエラーが何個も出て恐怖を覚えました。
そこで私は思ったのです。
いや、そもそもdocker-compose.ymlってなんぞや??
もしかするとカリキュラム上ですでに説明があったかもしれませんが、覚えていないものはしょうがありません。
なんぞやを解明していきます。
docker-compose.ymlとは
複数のコンテナをまとめて管理するための設定ファイルです。
要するに、アプリを動かすために必要なDocker環境をまとめて書いておける説明書とでも言っておきましょう。
これのメリット・・・の前に、初学者の同志がみんな気になってるあやつの説明をしますね。
yml(yaml)って何?
こいつはそう、YAML Ain't a Markup Languageの頭文字をとった、
設定ファイルの書き方のルール(フォーマット)です。
それは頭文字とってんのか?と言う疑問は四次元ポケットに放り投げておきましょう。
user:
- name: hogeta
age: 18
mail:
- hogeta@example.com
- hogehoge@example.com
- name: fugako
age: 17
mails:
- fugako@example.com
- fugafuga@example.com
このような書き方のことを言います。
シンプルで見やすいですね。
では続きましてお待ちかねの、あのお方のメリットを発表します。
docker-compose.ymlのメリット
これがない場合を考えてみると、dockerアプリを動かす時って
webサーバ、DB、キャッシュなど複数のコンテナを使うことが多い。
一つずつdocker runするのなんて大変すぎる!
ってことになってしまいます。
そんな時docker-compose.ymlが本領発揮してくれます。
前述した通り、複数のコンテナをまとめて管理するための設定ファイルであるから
ここに書いておけば
docker compose upで全てのコンテナを一括起動
docker compose stopで一括停止
させることができます。
とっても便利ですね。
調べてみたらdocker-compose.ymlのありがたさを知れました。
ありがとうdocker-compose.ymlさん。
おわりに
ちなみに、docker-compose.ymlとcompose.ymlは同じ機能です。
どっち使っても問題はないらしいですが、公式はcompose.ymlを推奨しています。
同じディレクトリにdocker-compose.ymlとcompose.ymlがある場合は、compose.ymlが優先されるようです。
`docker-compose.yml`の内容についてはまた別の機会に・・・。
こやつのありがたさを胸に、学習の積み上げ頑張ります!
間違っている点や、気になる点がございましたら、遠慮なくご指摘いただければと思います。