2016-08-14 12 views
2

私はdjangoアプリケーションを保持するドッキングコンテナを持っています。静的ファイルが生成され、静的フォルダにコピーされます。
コンテナのフォルダ階層:ファイルをドッカーコンテナからホストに公開する

- var 
    - django 
     - app 
     - static 

私はドッキングウィンドウのイメージを構築する前に、私は、静的なファイルが/var/django/staticフォルダにある./manage.py collectstaticを実行します。アプリを公開して静的ファイルを提供するために、私はホスト上にnginxを持っています。問題は、静的フォルダとホスト上の指定されたフォルダの間でボリュームを作成すると、ドッカーコンテナを実行すると、コンテナ内の/var/django/staticフォルダが削除されます(削除されずにマウントされます)。これを克服する方法はありますか?ボリュームを設定するだけでなく、ドッカーに現在のファイルを取得するように指示しますか?

+0

によって外部(ホスト)へのドッキングウィンドウコンテナ内のホスト上で 3.マウントフォルダをSSHFSをインストールします。インストールしますか?だからここでやることは、あなたのdjango Webアプリケーションをビルドして(dockerfileの 'ADD'キーワードを使って)静的なファイルをnginxイメージにプッシュするために必要なことをすることです。 –

+0

私たちのqa/integration/production envがどのように機能するのかという理由からです。 nginxはホスト上にあり、ドッカーで動作しません。 –

+0

私は参照してください。だからあなたは、コンテナのファイルをホストにマウントすることを考えています。だから、あなたはそのファイルだけに興味があるコンテナを持つという目的は何ですか?静的なファイルディレクトリを、 'ngix'がそのファイルを提供するディレクトリにシンボリックリンクするだけではどうでしょうか? –

答えて

1

ボリュームはDockerのマウントとして扱われます。つまり、ホストディレクトリは常にコンテナのディレクトリにマウントされます。言い換えれば、あなたがやろうとしていることは、現在Dockerのボリュームでは不可能です。 https://github.com/docker/docker/issues/4361

一つの可能​​な回避策ごドッカーRUNコマンドで、あなたの容器の中に空のディレクトリへのドッキングウィンドウのボリュームを持っている、とすることです(または開始:

この件について、このGithubの問題を参照してください。 -upスクリプト)、静的コンテンツをボリュームとしてマウントされている空のディレクトリにコピーします。

+0

私のソリューションはあなたに近いものでした。私はコンテナを起動し、ボリュームをマウントした後、私はちょうどanothe collectstaticコマンドを実行し、ボリュームをファイルに再投入しました。 –

0

別の素敵な解決策: 1.代わりに `nginx`ドッキングウィンドウのイメージを構築していないのはなぜSSHD 2. SSHFS

関連する問題