7

Laravel アプリ用に Docker をセットアップしています。これは、膨大な量の画像とその他の静的ファイルが と の./storage/app両方privateに存在する内部 CDNpublicです。Docker イメージを GitLab CI でビルドしたいのですが、ストレージの内容を上書きせずにビルドする正しい方法は何ですか? これらのコンテンツはリポジトリに存在しません。

私はそれについて2つの考えを持っています:

  • /var/www/htmlからプロジェクトの へのシンボリックリンクと からプロジェクトの へ./storage/app/public シンボリック/some_other_folderリンクを作成します./storage/app/private。この場合の問題は、フォルダのソフト リンクにファイルを書き込むことができるかということです。可能であれば、そのファイルは本当にシンボリック リンクの元のフォルダに表示されますか? これがすべて当てはまる場合、Dockerコンテナー内のフォルダーへのシンボリックリンクを本当に作成できるかどうかにも興味があります...

  • フォルダー内のフォルダーではなく、外部にファイルを書き込むように Laravel Storage をセットアップします。この場合、問題は、LaravelとDocker をどのように構成して、ファイルをコンテナーの外部に書き込み、それら/var/www/htmlpublicprivate/some_other_folderに直接配置できるようにするかということです。

どちらの考えも正しい/良い/達成可能ですか? または、問題を解決する他の方法はありますか?

4

2 に答える 2

9

私は質問が最新のものではないことを知っていますが、私は同じ問題を抱えていて、アイデアが得られるまで自分でかなりの調査を行ったので:

artisan によって作成されたリンクのように機能する 2 つのバインド マウントを使用して、php コンテナーを開始しました。

version: '3.7'

services:
  laravel:
    image: php
      volumes:
        - type: bind
          source: /path/to/laravel/project/
          target: /var/www/html/
        - type: bind
          source: /path/to/laravel/project/storage/app/public/
          target: /var/www/html/public/storage/
于 2019-05-02T13:35:42.723 に答える