docker compose buildできなかった話(Windows11)
概要
これはタイトル通り、私がDockerを用いて環境構築をした際に$ docker compose build
できなかった時の備忘録です。うまく構築できなかった時の原因やその対処などをまとめています。
ちなみに私はプログラミング初心者で、なんならPC関連の知識も浅い状態です。
使用しているOSやアプリなど
- Windouws11
- Docker Desktop(以下、Docker)
- WSL2
- Ubuntu
- Visual Studio Code(以下、VScode)
躓くまでの経緯
Dockerを用いてLinuxの仮想環境を作り、そこでRubyを動かせる環境を作ろうとしました。手順をざっくり説明すると下記の通りです(Rubyは今回あまり関係ないです)。
- "Dickerfile"と"docekr-compose.yml"のファイルを作成する。
- VScodeを用いてファイルの中身を作成する。
- ターミナルで下記のコマンドを実行する。
$ docker compose build
$ docker compose up
4.別ターミナルを立ち上げ、下記のコマンドを実行する。
$ docker exec -it <ディレクトリ名> bash
今回の場合、私は手順3のコマンドがうまく実行できませんでした。コマンドを実行しようとするとファイルが見つからないと言われてしまったのです。
$ docker compose build
no configuration file provided: not found
原因と対処
なぜ実行できないのか、私はネットの記事や質問板を読み漁りました。
そして考えた原因や行った対処は下記の通りです。
-
スペルミス、コードミス
ファイル名やその中身にスペルミスや、ファイルの中身のソースコードにミスがあることをまず考えました。ChatGPTにレビューしてもらい、実際にスペルミスを見つけることができました。しかし、それを直してもコマンドを実行できませんでした。 -
該当ディレクトリでコマンドを実行していない
次に考えたのがファイルが存在しているディレクトリでコマンドを実行していない可能性でした。ターミナルにて"pwd"コマンドで自分の位置を確認し、コマンドの実行を試みましたがダメでした。 -
Dockerが起動していない
Dockerのアプリがうまく起動していないとdockerコマンドは実行できません。アプリの再起動や再インストールを試みました。しかし状況は変わりませんでした。 -
Dockerの設定ミス
DockerのResourcesの設定を見なおしました。下記の図のように、自分が使用しているUbuntuアプリにチェックを入れて、PCを再起動しました。これでもダメでした。
-
VScodeを仮想OS上で起動していない
このページを参考にしたところ、自分もWindows側でVScodeを立ち上げてしまっていました。ターミナルで$ code .
と入力し、仮想OS上で起動しました。
下記の赤い丸で囲った部分で、現在VScodeがどこで起動しているかを確認できます。
-
用意したファイルがLinuxのルートディレクトリ上にない
Linuxの仮想OSで操作したいファイルがWindowsのローカルディスクに作成してしまっていました。この状態だとパフォーマンスが低下し、うまく機能しなくなるとかなんとか。ということで、用意したディレクトリやファイルをLinux上に作成しなおしました。 -
やっぱりスペルミス
上記の9番と10番の対処を行ったにもかかわらずコマンドが実行できなかったので、「ここまでか…」とギブアップしそうになったのですが、$ ls
でファイル一覧を見たところスペルミスを発見しました。ファイルを作り直したときにミスしていたようです。それを直すことでようやく$ docker compose build
が実行できました!
まとめ
今回の場合は上記の9,10番とスペルミスが原因でできませんでした。もし$ docker compose build
が実行できなかった場合、上記のいずれかが原因になると思います(ほかにもあるかもしれませんが)。
以上が$docker compose build
できなかった話になります。ここまでお付き合いいただき、ありがとうございました!
Discussion