Docker

【Docker】#5 dockerでコンテナ(機能)を起動+Laravel表示確認

docker_icon

はじめに

今回業務で開発環境を作る際に共有できるノウハウが存在しないチームだったので、展開できる方法を検討し、Dockerが最適だと判断し個人で勉強しチームに展開まで行いました。

この通りやれば環境を再現してローカルで使える!というところまで、まとめたので時間がある限りブログに残そうかと思っています。

今回は第五回目です。
dockerでコンテナ(機能)を起動+Laravelの表示確認します。

Dockerfileや各種設定ファイル、そもそもDocker、Laravelのインストールが終わってない方は前回の記事を参考にしてみてください。

作成する環境は以下の通りです。

  • windows pc
  • php 8.0.23
  • composer 2.4.1
  • nginx 1.22.0
  • MySQL 8.0.30
  • Laravel 6.20.44
  • phpMyAdmin最新

参考にした教材は以下です。
こちらがなかったらここまで実現できなかったと思います。

ありがとうございます。

なお、私自身はインフラ専門家ではないので、インフラの各種機能の設定値は深堀していません。
本気で事業で使う場合はインフラの専門家の方にDockerファイルを作成+本番環境での運用を想定してもらい、それを作業者は起動、運用するだけ、という風にするのが理想だと思います。

用語

先によく出てくる用語だけ記載しておきます。
作業中にわからなくなったら見てください。

ホストOS 作業側のパソコン。ローカルともいう
Dockerfile イメージをビルドで作るためのDockerの設定ファイル
イメージ コンテナを作成するためにDockerfileからビルドで作成されたもの。
Dockerhubで配布されている公式のイメージもある。
ビルド Dockerfileからイメージを作成する事
コンテナ イメージから作成された各機能のこと。
サービスとも呼ばれる。
このコンテナの集まりで環境が構築される
docker-compose 複数のコンテナを一気に作成したりできる一元管理機能。
Dockerを使う場合実質必須になります。
docker-compose.yml 複数のコンテナを一気に作成、起動したりできるdocker-composeの一元管理ファイル。
docker-composeをインストールしてdocker-compose.ymlを作成してdocker composeコマンドで実行して利用します。

 

現在の作業フォルダ

前回までに作成した以下のフォルダが作業ディレクトリになります。
参考までに記載しておきます。

nginx_mysql_laravel/	    TOPフォルダ。名前はコンテナ起動前(環境構築前)なら自由に変更可能
├── laravel		    Laravelのソースコードが置かれるフォルダ=実作業フォルダ
├── docker		    dockerの設定ファイルや環境設定ファイルを置くフォルダ。
│                 ここの配下のフォルダ名を変える場合、
│                 Dockerfileとかdocker-compose.ymlでパスの修正が必要です
│   ├── php		     phpコンテナ(phpの環境構築設定ファイル)
│   │   ├── Dockerfile		phpのDockerfile
│   │   └── php.ini		php設定ファイル環境立ち上げるときにコンテナにコピーされます
│   ├── mysql 		    MySQLコンテナ(MySQLの環境構築設定ファイル)
│   │   ├── Dockerfile		MySQLのDockerfile
│   │   └── my.conf		mysql 設定ファイル環境立ち上げるときにコンテナにコピーされます
│   └── nginx		    nginxコンテナ(nginxの環境構築設定ファイル)
│   │   ├── Dockerfile		nginxのDockerfile
│   │   └── default.conf	nginx設定ファイル環境立ち上げるときにコンテナにコピーされます
│   └── phpmyadmin		phpMyAdminのデータが永続化される場所
└──  docker-compose.yml		全コンテナの一括管理をするDockerの設定ファイル

1.docker-compose.ymlからコンテナを起動

1.Docker Desktop アプリを起動

Dockerを使うには、Docker Desktop アプリを起動する必要があります。
アプリを起動してください。

Docker Desktop アプリってなんだっけ?という方は最初の記事を見てみてください。
最初にインストールしたアプリです。

Docker Desktopインストール

2.作業ディレクトリに移動

docker-compose.ymlがあるフォルダにコマンドで移動します。

cd ローカルフォルダのパス

 

3.Dockerコンテナを起動

Dockerのコンテナを起動し環境起動します。
※初回はキャッシュがないので時間かかります。
※ -dはコマンドプロンプトが占有されないように、バックグラウンドで実行するためのオプションです。

docker-compose up -d

 

■イメージ名の命名規則について
今は分からなくてもよいですが以下のようになっています。

{プロジェクトのフォルダ名}_{サービス名}となり、imageよりbuildのサービス名が優先される

イメージ名って何になるんだろ?って思ったときに参考にしてください。
Docker DesktopのImageの画面でも確認ができます。

2.Laravelの表示確認

docker-compese.ymlのportsで指定したポート番号でアクセスします。
今回はnginxのportsで8081:80と記載してるので以下のURLになります。

http://localhost:8081

■Laravelでパーミッションエラーが出る場合は以下を実行してください。
・docker-compose exec php chmod -R 0777 bootstrap
・docker-compose exec php chmod -R 0777 storage

※dockerのコンテナ(php)にはいり、パーミッションを変更しています。phpはdocker-compese.yml記載のサービス名のことです。

さいごに

今回はこれで完了です。
次回は6「LaravelのDB設定、確認」を行います。

全体の流れとしては、大きく以下のようになっています。

  1. Docker Desktopインストール
  2. ローカルに作業フォルダを作成
  3. Dockerの設定ファイルを作成
  4. Laravelをコマンドでインストール
  5. dockerでコンテナ(機能)を起動+Laravel表示確認
  6. LaravelのDB設定、確認
  7. phpMyAdmin表示確認
  8. 出来てる環境の確認
たか
たか
今回はここでおわりです。

Dockerはコンテナ?イメージ?Dockerfile?docker-compose.yml?などの役割が頭に入ってくると理解しやすくなりますが、
そこも慣れなので、焦らずにやっていきましょう。