ドッカーコンテナの中で実行したいと思っています。ドッカーコンテナ内で信頼されていない.netコアアプリケーションを実行するためのベストプラクティス
- 簡単にするために、のは、そのアプリケーションが
dotnet new
によって生成されたシンプルなのHello Worldコンソールアプリケーションであると仮定してみましょう。これは、2つのファイルProgram.csとproject.jsonです。私のホストのいくつかのフォルダ にアプリケーションがボリュームとしてそのフォルダをマウント、microsoft/dotnet画像を使用して新しいコンテナを作成することを
- コピーを、:今私は、次のアプローチを試してみました
アプリをビルドして実行するための特定のコマンドを実行している:
$ docker run --rm -it --name dotnet \ -v /some/temp/folder/app:/app \ microsoft/dotnet:latest \ /bin/sh -c 'cd /app && dotnet restore && dotnet run'
私はまた、基本イメージとしてmicrosoft/dotnetを持つあらかじめ定義されたドッカーファイルを持っているという考えを考えていました。基本的にアプリケーションコードを埋め込み、それを作業ディレクトリとして設定し、復元、構築、実行コマンドを実行します。
FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
ENTRYPOINT ["dotnet", "run"]
私は、その後、一時フォルダに事前に定義されたdockerfileをコピーするだけで、その特定のアプリケーションのための新しいイメージを構築し、最終的にそのイメージを使用して新しいコンテナを実行することができます。
シンプルなコマンドラインアプリケーションでは、ドッカーファイルのアプローチが過剰ですか?これらの信頼できないアプリケーションを実行するためのベストプラクティスは何ですか?私はそれが実行され、ドッキングウィンドウのコマンドは、いくつかのアプリケーションによって生成された後、私はおそらく最初のオプションで滞在するコンテナを破棄しますので
EDIT
を(私は完全に無視する1かもしれません)ボリュームをマウントするだけです。
は、私はまた、彼らは同様のsanbox環境を構築し、同じ mounted volume approach
たぶん私はシナリオのためのベストプラクティスやアプローチになり、これらの2つのオプションのどちらを意味し、より明示的にされている必要があります。私はちょうどコンテナを回転させて、アプリケーションを実行して後で破棄できるようにしたいので、イメージを作成するのはちょっとの無駄かもしれないと思って、ボリュームをマウントするだけで十分でしょう。しかし、私はドッキングウィンドウで多くの経験を持っていないと私はDanielJ.G @他 –
の賛成で1を支配するだろう詳細を見下ろすことがあります。私はそれが技術的に大きな違いをもたらさないため、この時点で個人的な好みの問題になると言いたい。私の視点から - ドッカーファイルを使用すると、それはより分離され、毎回そのhell-ishコマンドを書く必要はありません。いつでもイメージを再利用/削除できます。 – rudolfdobias
@ DanielJ.G。あるいは、私はこう言っています:あなたが一度それを実行したい場合は、それを試して忘れてください - コマンドを入力しても問題ないなら、コマンドラインを使用してください。もっと使いたいなら、ドッカーファイルを作成してください。私はここで "ベストプラクティス"を宣言するためのスペースを見ません... – rudolfdobias