ucan-lab/docker-laravel-alpine

Twitterでレビューしてって言われたのでレビューしました :)

NakanishiTetsuhiro opened this issue · 3 comments

  • imageのバージョンは、バグ修正が適応されるように、パッチバージョンまで指定しないほうがいいかもしれません。

    • 例)image: mysql:8.0
  • 下記をホスト側で管理している理由はなんでしょうか?

volumes:
  db-store:
    driver: local
  redis-store:
    driver: local

@NakanishiTetsuhiro レビューありがとうございます!

imageのバージョンは、バグ修正が適応されるように、パッチバージョンまで指定しないほうがいいかもしれません。

ここは確かにそうですね。
マイナーバージョンまでの指定にしておけば、
安定的にパッチバージョン追いかけられるのでそうした方が良さそうです。

ありがとうございます!

下記をホスト側で管理している理由はなんでしょうか?

名前付きボリュームを作っている理由としては、下記3つの理由です。

  • Compose 内で定義しているコンテナ間でボリュームを共有できる
  • コンテナを取り外してもボリュームが残る(永続化)
  • 誤操作で誤って削除する可能性が減る

@ucan-lab なるほどです!確か、 driver: local を指定してしまうとボリュームはホストにデータを作成してしまうので、できればdocker側でデータボリュームを保持したほうがよさそうです。 理由としては、 docker for mac の場合、ホスト側にでかいデータを保持してそれをdocker側にマウントしてしまうと、ファイルシステムのマッピングの速度が原因でレスポンスが非常に遅くなってしまうというのがあるからです ><
https://blog.hanhans.net/2017/05/23/docker-for-mac-slow/

# こうするとdockerの世界の中でデータボリュームを作成してくれる
volumes:
  db-store:
  redis-store:

どうしてもホスト側でデータをマウントして使う必要がある場合は下記のドキュメントを参考に cacheddelegated オプションを付けると早くなります :)

https://docs.docker.com/docker-for-mac/osxfs-caching/

@NakanishiTetsuhiro あっ!なるほど理解しました!
これは良い情報ありがとうございます☺️
採用します!