Dockerのインストールとdockerコマンドの使用
私が使用しているMacにdockerをインストールしてdockerコマンドを使えるようにするらしい
この前のrailsを使ったLINE-botもそうだが
何かの外部からのコマンドを使えるようにするには
外部からインストールするというのが方法のようだ
Dockerとは
Dockerとは現在使用しているパソコンにnginx(最も高い稼働率を誇るサイトのうち約65%以上で広範囲に支持されている高信頼のWebサーバシステム)やMySQL(オープンソースのリレーショナルデータベース管理システム)などの開発に必要とされるソフトウェアを簡単にインストールして動かせる技術のこと。
確認
そんなDockerをインストールして実際にターミナルでコマンド入力できるか確認
すると
> docker-compose -v
unknown shorthand flag: 'v' in -v
とでた
docker-compose --version
Docker Compose version v2.0.0-rc.3
このようにコマンド入力したらバージョンが出た。
よかった。
PHPの環境構築の際のエラー
さて、今回はPHPを使用するのだが
Git Hubから環境構築用のファイルを取得し、
docker-composeコマンドを使って環境の立ち上げを行なった
docker-compose -f .docker_memo/docker-compose.yml up -d
このコマンドを使用することで環境構築を自動で行なってくれるらしい
Recreating php_simple_memo_mysql ... done
Recreating php_simple_memo_phpmyadmin ... done
Creating php_simple_memo_php ... done
Creating php_simple_memo_nginx ... done
無事完了した
これで、mysql, phpmyadmin, php, nginxが起動している状態になった。
また
docker ps
こちらのコマンドで起動状況の確認ができた
実行されているアプリケーションの環境の停止と起動
停止
docker-compose -f .docker_memo/docker-compose.yml down
起動
docker-compose -f .docker_memo/docker-compose.yml up -d
Laravel
createメソッド→モデルに**$fillableまたは$guarded**変数を作成して、設定をしないといけません。
$guarded→更新できないカラムを列挙した一覧を設定
$fillable→更新できるカラムを列挙した一覧を設定
dockerコンテナに入ってlaravelのマイグレーションを行なった際に発生したエラー
dockerコンテナに入って
php artisan migrate
を実行したところ
Nothing to migrate
というエラーが発生した
どうやらmigrateするものはないとのこと
php artisan migrate:fresh
で実行したところ
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (78.65ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (51.53ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (61.13ms)
Migrating: 2021_10_09_122745_create_memos_table
Migrated: 2021_10_09_122745_create_memos_table (30.86ms)
となって成功した。
この:freshを行うことで全てのテーブルをドロップしてから再びマイグレーションできるらしい
PHPとLaravelのファイルやディレクトリの作成の違い
PHP→mkdirやcd,vimを使用してファイルやディレクトリの作成を行う
Laravel→dockerコンテナに入ってコマンドを実行して作成
PHPとLaravelの両方で同じ機能のメモアプリを作った感想
・LaravelではMVCのアーキテクチャにより、どこでどの処理が行われているのかの判断がしやすく、エラー部分に気づきやすかった。
・大規模開発になればなるほど管理の面からLaravelの恩恵を受けやすいと感じた。
・小規模であったり単体の実装であればPHPで行うのが良いのでは?と感じた