Windowsコンテナーにはフル版のWindowsや必要な機能を絞ったServerCoreなどがありますが、
いずれも公式で公開されてるコンテナーにはVCランタイムは入ってないので、VCランタイムが必要なアプリケーションは動作しません。
そこで今記事では、GUIがないWindowsコンテナーにVCランタイムを入れる方法について備忘録も兼ねて書いていきたいと思います。
目次
WindowsコンテナーにVCランタイムを入れる方法
以下の流れです。
- VCランタイムを入手する
- WindowsコンテナーにVCランタイムをコピーする
- サイレントでVCランタイムのインストールを実施する
VCランタイムを入手する
VCランタイムは以下のMicrosoftのページからダウンロードできますので、まずは必要なバージョンをダウンロードしておきます。
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads
VC2015以降は共通のランタイムらしいです。楽ですね。
WindowsコンテナーにVCランタイムをコピーする
Windowsコンテナーに、先ほど入手したVCランタイムをコピーします。
Volume指定で共有フォルダをマウントしておけばそこに入れるだけですが、
マウントしてない場合は”docker cp”コマンドでコピーします。
docker cp <ホスト側のパス名> <コンテナID>:<コンテナ側のパス名>
サイレントでVCランタイムのインストールを実施する
WindowsコンテナーはGUIが無いので、サイレントでVCランタイムをインストールすればOKです。
VC2015/2017/2019:
vc_redist.x64.exe /install /quiet /norestart /log <ログファイル名>
上記以前:
vcredist_x64.exe /install /quiet /norestart /log <ログファイル名>
実行するとインストールが開始されます。しばらく無応答に見えますが、1分弱でインストールが完了しますので少し待ちましょう。
インストールが終わるとログファイルができているはずなので、念のため中を見てエラーらしき文字列が出力されてないか確認します。
特にログの内容に問題が無ければOKです。(最後がreturn 0で終わっているはず)
以上でVCランタイムのインストールは完了です。
これでVCランタイムが無いと動かないアプリも動作するようになります。