‫OKです｡
‫これは私が課題2を実行しているところです｡ ここでは3つのペインを開いています｡
‫左側にdocker composeのコマンドを実行する場所があるんです｡ このディレクトリを見れば､ あなたが始めているのと同じディレクトリであることがわかるでしょう｡
‫乗り切る方法を教えてくれるreadme｡
‫それから､ 空のDockerfileと､ 空のDocker compose file｡
‫そして右側にはVimを開いて､ 編集したいファイルを上に表示できるようにしています｡ そして､ 下の方に説明書きがあります｡
‫まず､ Dockerfileに注目したい｡
‫drupal 8からやる必要があると書いてあるのですが｡ 2. それから､ Gitをインストールするための実行をする必要があります｡ アプトゲット・アップデート
‫の更新を行います｡
‫ちなみに､ install -y... この「-y」は､ 自動的に「はい」と答えるという意味です｡
‫そうすれば､ 自動で... を実行すると､ Gitのインストールを促すプロンプトが表示されません｡
‫そして､ これは適切な後始末についての話です｡
‫そのため､ apt-getを使うときはいつでも､ apt-get updateを行うときに実際にキャッシュが作成されます｡
‫少なくとも10MBは不要な画像を占有しているため､ キャッシュを削除したいのです｡
‫この場合､ バックスラッシュを使うことで､ このコマンドの次の行を含めるという意味になりますね｡ そして､ &&マーク...｡
‫やアンパサンド・アンパサンド...｡
‫は､ 最初のコマンドが成功したら､ このコマンドも実行しろと言っているのです｡
‫そして､ 実はここに1つあるんです｡
‫だから､ 実はこれが3つ目のコマンドになるんです｡ これらの特定のファイルを削除します｡
‫結構多いんですよね｡ これは一通り画像で見ていますね｡
‫私はただ､ 画像をきれいに保つために､ すべての画像に追加しています｡
‫実は機能させるための必須条件ではないんです｡
‫それは､ 清潔さを保つためにあるのです｡
‫そこで､ テンプレートやテーマの作業ディレクトリを変更する必要があります｡
‫それから､ クローンを作る必要があります｡
‫このままでは... をコピーして貼り付けてください｡
‫Gitをやっている人なら､ これらは見覚えがあるかもしれませんね｡ Gitは､ 明らかに私たちを引っ張っている... は､ テンプレートであるこの特定のGitリポジトリを下にクローンしています｡
‫特定のブランチを使用している この2つの変数､
‫つまりここに入れた2つのオプションを使って､
‫最新のコピーと特定のブランチだけをダウンロードするように指示しています｡ 基本的に時間の節約になります｡
‫実際に､ Gitリポジトリのダウンロードにかかる時間を数分短縮することができます｡ 最新のコミットとその中のすべてのファイルが必要で､
‫特定のブランチだけが必要な場合､ それはおそらくイメージをデプロイするときに必要なものだけでしょう｡
‫なぜなら､ それを変えるなら､ 新しいイメージを作ればいいだけだからです｡ そうだろ？
‫というわけで､ いいヒントになりました｡
‫画像作成にGitを多用している場合､ リポジトリの全履歴が不要になるため､
‫時間とスペースを大幅に節約することができます｡ 最新のコミットが必要なだけです｡
‫OKです｡
‫では､ ここで問題になるのは､ これらのファイル... これはDockerでよくある問題です...｡ ここで実行するすべてのコマンドは､
‫rootとして実行されます｡
‫つまり､ これらのファイルはダウンロードされ､ ルートとしてそのディレクトリに置かれただけなのです｡
‫しかし､ 問題は､ Apacheウェブサーバーがこれらのファイルをwwwデータユーザーであることを期待することです｡
‫だから､ うまく動作させるためには､ 後からパーミッションを変更する必要があるんだ｡
‫これらのコマンドを知る必要はありません｡
‫しかし､ これは非常に一般的に示されているもので､ チェンジオーナーの略です｡ そして､ -rは､ このユーザーとこのグループに対する､
‫サブディレクトリとサブファイルを含むすべてのファイルを意味します｡
‫ここでは､ 作成したディレクトリだけに限定して説明します｡
‫2,3マイクロ秒の節約になります｡ このとき､ アプリケーションが起動したときの作業ディレクトリにいることを想定して､
‫作業ディレクトリを元に戻す必要があります｡
‫その他､ cmdとかの指定は､ fromイメージで既に指定されているので必要ないのですが・・・｡
‫Drupalの画像から引っ張ってきています｡ わかりました｡ もういいやと思う｡
‫Composeファイルに移動してみましょう｡
‫以前のファイルを保管している場合､ 以下のような感じになっていると思います｡ そうだろ？
‫サービスがあり､ イメージ名drupalがあり､
‫ボリュームがあり､ postgresがあり､ パスワードの環境変数があります｡
‫そして､ ボリュームを定義します｡
‫この状況でこれを実現するために必要なことは､
‫指示に従い､ 画像の名前を変更することです｡
‫コンポジットファイルの中にイメージキーとビルドキーがある場合､
‫イメージキーの目的が変わってしまいます｡
‫Drupalの公式イメージをダウンロードしてください」と言う代わりに､
‫ビルドを追加したら､ 「ローカルマシンの特定の場所からビルドして､ ビルドしたイメージをこのイメージ名で呼びたい」と言うことになるのです｡
‫'
‫これで､ 実は画像名を指定する必要がなくなりました｡
‫画像行を完全に削除しても､ Composeの命名に基づいた名前が自動的に作成されることに､
‫おそらくお気づきでしょう｡ Composeを使用すると､ その特定のプロジェクトに友好的であるように､
‫すべてに名前が付けられます｡
‫でも､ ここでハードコードしていきます｡
‫ビルドにドットを入れていることに注目してください｡
‫これは､ 「このディレクトリでビルドして､ デフォルトの名前のDockerfileを使えばいいんだよ」ということを伝えるための､
‫単なるショートカットです｡ ' ビルドの選択肢を与えない｡
‫カスタムビルドファイルやカスタムロケーションを指示しているわけではありません｡
‫一番シンプルな方法で伝えているだけで､ それが私たちの作り方です｡
‫わかりました｡ これで完了です｡
‫これで､ 私のDockerfileに基づいたカスタムイメージが構築されるはずです｡ そして､ このPostgresの下に､
‫実際にボリュームを置く必要があるのです｡
‫データを保存してほしい｡
‫データを保存したい理由は､ テスト中にdocker
‫compose downを実行すると､ 実際にデータベースが削除され､ その後､ 私たちは...しません｡
‫電源を入れ直したときに､ データが残っていないんです｡ そのため､ Composeの再起動後もデータを保持できるようにしたいのです｡
‫今､ docker composeを実行すると､ このデータボリュームが入った後､ 最後に-vを付けて「ボリュームも削除してください」と言わない限り､
‫実際にはデータボリュームは削除されません｡ ' その通りだと思います｡
‫Drupalのデータvar
‫lib postgresのSQLデータ｡
‫わかりました｡
‫それなら､ ここにも書いておかないと｡
‫データです｡
‫わかりました｡
‫準備はできていると思います｡
‫自分のファイルを保存する
‫docker compose upして見ましょう｡ では､ ブラウザのlocalhost 8080を確認してみましょう｡
‫わかりました｡
‫これがすべてうまくいったなら､
‫前にやったように､ このインストールを歩いて､ postgres
‫postgres mypasswd postgresします｡
‫保存して続行します｡ 今回は少し早めですが､ 皆さんもやったことがあると思うので｡
‫早速ですが､ サイトの設定を行います｡
‫OKです｡
‫このサイトでは､
‫外観タブを開いて､ Bartikのデフォルトであることに気づくように指示されています｡
‫この下にあるアンインストールされたテーマは､
‫画像と一緒にインストールしなければ存在しなかったものです｡
‫インストールをクリックして､ デフォルトに設定することができます｡
‫その後､ クリックしてサイトに戻る｡
‫私のサイトでは､ CSSやウェブサイトのテンプレートシステムとしてかなり有名なTwitterのbootstrapフレームワークを使用して､
‫全く新しいテーマを持っています｡
‫だから､ すべてが思い通りに動くのです｡
‫戻って実際にこれを止めて､
‫中止して､ ダウンをやったら､ 実際に画像が削除されそうです｡
‫しかし､ データを削除するわけではないことを忘れないでください｡
‫Drupalのモジュールやプロファイル､
‫サイト､ テーマ､ そしてデータベースに保存されているデータなど､ すべての設定ファイルが残っているはずです｡
‫更新を押しても動作するはずなのですが｡
‫この方法の良いところは､ 実は画像も容器も比較的きれいに保つことができることです｡
‫そうすれば､ プロジェクト間でシフトするときに､
‫技術的にそのものを処分して､ そのままにしておくことができますから......｡ 編 巻だけでも... は､ その中のデータを削除しないでください｡ ただ､ ボリュームはそのままにして､ そのデータを削除しないようにします｡
‫そうすれば､ プロジェクトに戻ったとき､
‫すでにサンプルデータがすべて入っているので､ ゼロから始める必要はありません｡
‫わかりました｡ それだけです｡