[Windows] Dockerコンテナーを実行可能ファイルとして実行し、かなり複雑なPowerShellスクリプト(Javaおよび.NETアプリケーションを呼び出します)を実行して終了します。 Dockerドキュメント を提案する必要がありますこの目的でENTRYPOINT
を使用しているので、先に進み、次の内容のDockerfileを作成しました。
FROM Microsoft/dotnet-framework
COPY run.ps1 /
ENTRYPOINT [ "powershell.exe", "C:\\run.ps1" ]
run.ps1
の内容(この質問では簡略化されています):
gci
write-Host "looks like everything is good!"
次に、次のコマンドを実行しました。
# Build the Docker image
docker build --rm -t testdockerps .
# Create/run container using above image
docker run -it testdockerps
コンテナは正常に実行され、C:\
の内容に続いてメッセージlooks like everything is good!
が表示されました。
私の観察結果に基づいて、いくつか質問があります。
ENTRYPOINT
JSON配列の最初の要素として「powershell」を指定する必要はありませんか? DockerfileでShell
コマンドを使用する必要がありますか?はい、DOCKERFILE Shell ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'Continue'; $verbosePreference='Continue';"]
の上に以下のようにデフォルトのシェルとしてpowershellを指定できます
VMをスピンダウンするのにかかる時間について何でもできるとは思いません