‫わかりました｡ これは､ Drupalの設定を作成するための2つ目のComposeの課題を説明するものです｡
‫compose assignment 2のディレクトリにいるのですが､ ここにDocker Composeのファイルを作ることになっています｡
‫Visual Studio Codeに切り替えてみる｡ 新しいファイルを作成します｡
‫呼び方は自由ですが､ Docker Composeを使う最も簡単な方法は､ docker-composeというファイルを呼び出すだけです｡
‫ymlを使用します｡
‫そうでなければ､ 実際に毎回ファイルを指定するか､ 環境変数を設定する必要がありますね｡
‫それはちょっと痛いですね｡ では､ こんな感じでやってみましょうか｡ わかりました｡
‫Version 2と書いてありましたね､
‫要件のひとつに｡
‫そして､ サービスを打ち込む｡
‫ところで､
‫このアドインにお気づきでしょうか｡ これはVisual Studio CodeのDockerアドオンで､ 私がCodeの素晴らしい点の1つです｡
‫素晴らしいエディターです｡ 実は､ バックグラウンドでDocker Hubを検索する機能があるので､
‫私が入力すると､ いろいろなものが出てくるのがわかると思います｡
‫Drupalをやらなければいけないとわかっていても､ これはdrupalとしか言いようがないんです｡
‫そうすると､ 画像を使わなければならないことがわかるんです｡ drupalと呼ぶのは､ きっとイメージの名前だからです｡
‫Docker Hubから実際にプルアップされている様子をご覧ください｡
‫かなりイケてますね｡
‫それから､ 私のマシンで8080を開くためにポートを使わなければならないことは分かっているのですが......｡
‫あのね
‫画像に使用するポートがわからない｡ では､ 実際にここで「Drupal」を検索してみます｡
‫えーと... ドキュメントには何と書いてある？
‫以下はその一例です｡
‫コンテナ内は80番ポートのようです｡
‫それを確かめようと思えば､ 実際に中に入ってみることもできるのです｡
‫この例では､ latestを使うことにします｡ 実際にここでDockerfileに入ります｡ PHPのApacheからきているようです｡
‫ここにはportコマンドはない｡
‫実際にポートが何であったかを知りたい場合､ いくつかの方法があります｡
‫そのFROM Imageを調べに行くか､ その中にある露出したコマンドを見るか､ どちらかです｡ あるいは､ Drupalがローカルにあれば､ docker
‫image inspect
‫drupal, expose portsを実行しました｡
‫だから80番ポート｡
‫きっとそれで聴いているんだろうから､ 80に変えればいいんだよ｡
‫それから､ エクストラクレジットのために､ ボリュームを使うことになっているのは知っていますが､ それはまた今度｡
‫で､ もうひとつはpostgresになるわけです｡ そして､ イメージ｡
‫おっとっと｡ いいえ｡
‫どちらの選択肢もいらない｡
‫わかりました｡
‫ネットワーク内ではデフォルトを使うだけなので､ そこにポートは必要ないのです｡
‫ここでportsを使う必要があるのは､ 実際に-pを使う必要があるときだけであることにお気づきでしょう｡
‫この2つは同じDockerネットワークに入るので､ 接続するために何もする必要はありません｡
‫そのネットワーク上で動くだけなんです｡
‫説明書にはパスワードの設定が必要だと書いてありましたが､ どうすればいいですか？
‫とりあえず簡単なものに設定しておく｡
‫ここでバックアップを取れば
‫Dockerはなんて言ってるんだろう...｡ Drupalはそれについてどう言っているか｡
‫これを使ってみる
‫もし､ postgresのユーザーを使わず､ デフォルトでpostgres... はすべてデフォルトでpostgresになるので､ データベースもデフォルトでpostgresになります｡
‫ユーザーのデフォルトはそれです｡
‫パスワードを設定するだけでいいんです｡
‫了解しました｡ もうそろそろ終わりかな｡
‫ボリュームは別として｡
‫ここに書いてあることを見てみましょう｡ 巻｡
‫まあ､ 見てくださいよ｡
‫ここでは､ その例をいくつか紹介しています｡
‫だから､ これをコピーすればいいんです｡
‫4つともコピーでいいんです｡
‫Visual Studio Codeでは､ マルチカーソルもかなりイケてます｡
‫オッケーです｡ 見た目はいいんですよ｡
‫このファイルを保存する よし､ 実行して確認してみよう｡
‫素晴らしい 名前付きボリュームを使うなら､
‫ボリュームの部分をやらないと｡
‫だからこそ､ これはちょっとしたおまけなんです｡
‫そこで､ 実際にComposeのドキュメントを見て､ ボリュームがどのようにあるべきかを調べてみることにします｡
‫名前付きのボリュームには何も入れずに使えると書いてあります｡ こんな感じ｡
‫では､ それを試してみます｡
‫あ､ これ見てください｡
‫今気づいたのですが､ そこにdが抜けていますね｡
‫わかりました｡
‫もう一度やってみよう｡
‫開始前にネットワークとそのためのボリュームが作成されるのがわかりますか？
‫かっこいいですね｡
‫時間の節約になります｡
‫わかりました｡ すべて始まったようだ｡ localhost 8080にアクセスしてみます｡
‫わかりました｡
‫これでよしとしよう｡
‫セットアップを簡単に説明します｡
‫もちろんです｡
‫標準的なものです｡ postgresを使用しています｡ データベース名はpostgresです｡
‫もしご存知なければ､ Hubのpostgresのところに､ デフォルトのデータベースがどのように機能するかについてのドキュメントがありますよ｡
‫ここで教えてくれるのは､ DBを指定しなければ､ 実際にはデフォルトでpostgresになる環境変数ばかりです｡
‫パスワードはmypasswdでした｡ 以前にもやったことがあるので､ ここをクリックすると､ 「ローカルホストと話す必要があると思うので接続できません」と表示されることは知っています｡
‫そして､ それが私に「アハ！」と教えてくれるのです｡ 実は､
‫ここでバックアップが必要なんです｡ ' パスワードを再入力し､
‫advancedで､ デフォルトがlocalhostになりました｡
‫postgresと名付けたサービスの名前にする必要があります｡
‫すべてのエラーが見える・・・｡ エラーではなく､ バックグラウンドでログが表示されます｡
‫いろいろやってますね｡
‫でも､ そこにはエラーと書いてありますよね？ 効いてますね｡
‫ここでは､ 基本的な情報をご紹介します｡
‫ちょっと入れてみますね｡ 見てみよう｡ そう呼ぶしかないでしょう...
‫わかりました｡ これでよしとしよう｡
‫どうやらDrupalのウェブサイトが完全に動作するようになったようです｡
‫これで､ 実際にControl cするだけで済むようになったので､ クリーンアップを行いたいと思います｡
‫だから､ ダウンをしたいんです｡
‫しかし､ 実はボリュームを削除するオプションがあるんです｡
‫これを使う予定はないので､ down -vでボリュームも削除しておきます｡ なぜなら､ 当然ながらDockerはデフォルトで常にボリュームを保護しようとしているからです｡
‫docker
‫volume removeとprune以外のdockerコマンドには､ 実際にボリュームを自動的に削除するものはありません｡ なぜなら､ 常にデータを永続化することを前提にしているからです｡
‫わかりました｡
‫これでよしとしよう｡