
じろう
2019年11月02日に参加
学習履歴詳細
[Docker][Laravel]新しいdocker環境での動作確認。Googleログインができないのを修正。更新時に日付が保持されていないバグを修正しようとするもうまくいかない……
今日のYWT
やったこと
Travelog
新しいDocker環境で動作確認
- Googleログインが出来ないので出来るようにする
- 更新時に日付を保持しないエラー発見……
エラーを発見したので修正したい
form.blade.php
で、日付を洗濯するとこで持ってくるデータをformat
で形式合わせしてあげる- これで
edit
時は解決したものの、これをするとcreate
時に$articleがundefined
と出てしまう…… create
アクション時に$article = new Article();
としてviewに渡すもダメ- 演算子変えて
$article ? $article->start_date->format('Y-m-d') : old('start_date')
と書くも、$articleがnullじゃformat
は使えないと言われる……
- これで
わかったこと
Googleログイン
Googleログイン時、どこのURLにリダイレクトして戻ってくるかを環境変数で指定してるっぽく、.env
のAPP_URL
を参照するのでここの書き換えが必要だった。
Q. GDのインストールの際、コンテナに入ってインストールしてもボリューム消えたら何も残らないとのことでしたが、
docker-compose exec app composer require laravel/socialite
と打って socialiteをインストールするのもコマンドではなくDockerfileに記述したほうが上と同じで破棄したときに消えてしまわないから良い、という感じでしょうか?
A. それはコンテナで実行するがローカルのディレクトリと同期されている場所にインストールされるから、コンテナから消えてもまた立ち上げた時にローカルから同期されるので問題ない
Q.つまり、docker-compose.yml
の
app: build: context: . dockerfile: ./docker/php-fpm/Dockerfile # ソケットで通信してるからポートは書かない volumes: - ./:/work - php-socket:/var/run/php-fpm
app
部分の volumes
の記述により、コンテナの /work
以下と、ローカルの docker-compose.yml
の入ったディレクトリ = travelog(laravelアプリのディレクトリ) が同期され、どちらにもインストールされる。
コンテナの socialite
が消えたとしても、立ち上げるときにローカルにあることを参照して同期するので問題ない、という解釈ですが合ってますか?
→合ってる!!
次やること
- 日付の不具合解決
Docker
Laravel
2020年12月18日(金)
1.9時間