問題タブ [windows-server-2019]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Windows Server 2019 での Linux Docker コンテナーの実行
会社のプロジェクトの 1 つで docker を検討しています。このプロジェクトでは、CentOS で MemCached を実行する必要があり、Docker コンテナーで実行することを好みます。Docker Community Edition がインストールされた Windows 10 マシンでこれを正常に実行できました。しかし、私たちのプロジェクトには運用環境で Windows Server 2019 が必要であり、Windows Server 2019 で同じイメージ (CentOS の MemCached) のコンテナーを実行したいと考えています。Google でよく検索したところ、Windows Server 2019 で Linux コンテナーを実行するためのリンクが見つかりました。上記のリンクでは、プレビューバージョンで docker パッケージをインストールしています。私は、このプレビュー バージョンを本番環境で使用すべきではないと考えています。私の理解は正しいですか?また、Windows Server 2019 で Linux コンテナーを実行するための他の安定したリリース済みの方法はありますか。
前もって感謝します。
powershell - Jenkins から Hyper-v Windows 10 への Powershell Direct
Jenkins を使用して VM を自動的にテストしようとしています。これには、新しいコードを VM にコピーすることや、Powershell スクリプトを使用してホストから VM に特定のコマンドを実行することが含まれます。
ただし、Jenkins Freestyle および Pipeline プロジェクトで、hyper-V Windows 10 VM に対して「Invoke-Command」または「New-PSSession」を使用しようとすると、エラーが発生します。
これは、Jenkins が実行されている環境です。
これは、フリースタイル プロジェクトの「Windows Powershell」ビルド ステップで作成した Powershell スクリプトです。
出力は次のようになると思います。
しかし、私が得たのはこれです:
この問題に関する Microsoft の公式 Web ページを参照した後、考えられる原因は次のとおりです。
- VM は存在するが実行されていない
- ゲスト OS は PowerShell Direct をサポートしていません
Powershell はゲストではまだ利用できません:
- オペレーティング システムはまだ起動していません
- OS が正常に起動しない
- 一部の起動時イベントにはユーザー入力が必要です
- -Credential を使用して資格情報を明示的に渡す必要がある現在のビルドのバグ。回避策として Restart-Service -Name vmicvmsession を実行します。
しかし、Jenkins からの出力から、接続しようとしていた VM は "Running" であり、正常に起動されています。
次に、ホストから直接 VM に「Invoke-Command」と「New-PSSession」を試みたところ、VM に接続できました。
Windowsサーバー2019の代わりにWindows 10マシンにインストールされたJenkinsでも同じことを試しましたが、すべて機能します。
ユーザー管理情報は、Jenkinsを実行しているログインユーザーが「管理者」と「hyper-v管理者」の両方です。
これらは私がデバッグに使用した参照の一部であり、問題が何であるかを見つけることができません:
PowerShell と Jenkinsを使用したリモート アクセスですが、これがどのように機能するのか正確にはわかりません。
編集:
この問題を回避する方法を見つけました。これは確実な解決策ではなく、回避策であることに注意してください。
を実行する代わりにInvoke-Command -Credential $mycreds -VMName $VMName -ScriptBlock {host}
、これを実行します。
このコマンドは基本的invoke-commanding
にホスト マシンに対して実行され、ホスト マシンを使用Invoke-Command
して VM に対して実行されます。
それは間違いなく完璧な解決策ではありませんが、誰かがより良い解決策を見つける前に、私は今のところこれで行きます.