じろう

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にリダイレクトして戻ってくるかを環境変数で指定してるっぽく、.envAPP_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時間