2016-09-21 10 views
2

私はdocker djangoコンテナをセットアップし、チュートリアルhereを使用してビルドを使用してイメージを作成しました。このチュートリアルでは、基本的なdjangoアプリケーションを作成する方法を示し、アプリケーションを"/ code"にマウントします。これは私が理解するように、データボリュームに含まれています。ドッカーコンテナのコー​​ドを更新する

しかし、私はこのコードを更新して開発し、それを発送/展開できるようになることを理解したいと思います。私がコミットすると、データボリュームの一部であるため、コードの変更は考慮されません。

djangoコードを画像の一部にしたり、更新したコードで画像を更新する方法はありますか?

+1

適切なPython依存関係がインストールされているコンテナにPythonソースコードを追加するだけです。そのコンテナの 'ENTRYPOINT'を' ["python"、 "/path/to/my.py"] 'にしておきます。ドッカー画像を構築することは、タグのみやマスターなどのルールに基づいて、CIシステムによって実行されるものです。 – activatedgeek

+0

データボリュームではなく、コンテナにソースコードを追加するにはどうすればよいですか? – bilalba

+0

一般的なワークフローには、別々の 'Dockerfile.development'と' Dockerfile'(生産用)があります。ボリュームは開発中ですが、プロダクションドッカーファイルにはボリューム命令がありません(あなたの場合は必須ではありません)。単にADDを行うだけです。/code'。ボリュームはありません。 – activatedgeek

答えて

-1

tutorialの手順9で、ボリュームを設定します。このボリュームは、現在のディレクトリとコンテナ/codeディレクトリをリンクします。言い換えれば、彼らは同じになるでしょう。

ローカルファイルを更新すると、コンテナ内のファイルも変更されます。変更が行われるようにアプリを再起動する必要があることを覚えておいてください。

イメージを展開する前に、2番目のドッカー作成用のファイルを作成する必要があります。このファイルはボリュームを削除し、コードはコンテナ内に残り、外部からは変更されません。 docker compose documentationに記載されている手順に従うことができます。

+0

/codeのファイルを変更すると、ローカルWebアプリケーションに表示されますが、コンテナイメージをプッシュして展開すると、変更内容は含まれません。 – bilalba

+0

私はボリュームオプションが問題かもしれないと思います。コンテナを押して実行すると、ボリュームは引き続き使用できますが、ローカルファイルは使用できなくなります。デプロイするコードを必ず更新してください。 もう1つの方法は、ボリュームを削除することです。そうすれば、コードを更新するたびにイメージを再構築する必要があります。 – alejdg

+0

それは私が求めていることです。私が展開しているコードをどのように更新すればよいですか? – bilalba

0

あなたがイメージを更新したい場合は、Dockerfileあなたはまたについての私の答えを

COPY /you/code/on/the/host /var/www 

のようなものを見ないでので、あなたはあなたのイメージビルド中にCOPYを使用し、原因アプリケーションコードの変更に言うことができます"ボリューム"と画像ビルドhttps://stackoverflow.com/a/39314602/3625317を使用して、コードがビルドに欠落している理由を明らかにする

関連する問題