qinfengge

qinfengge

醉后不知天在水,满船清梦压星河
github
email
telegram

使用WSLでideaのcopy configurationサブノードを作成します。

最近、spring cloud を学んでいて、eureka について学んだところ、idea は WSL へのインスタンスのコピーをサポートしていることに気付きましたので、自分で試してみました。

image-20220707131958866

WSL の設定#

WSL が何かわからない場合、またはまだ WSL をインストールしていない場合は、自分で調べてください。

以下の内容は Ubuntu20 を基準にしています。他のバージョンは適宜コマンドを置き換えてください。

JDK のインストール#

JDK がないと、WSL 環境で spring boot や cloud プロジェクトを実行することはできませんので、JDK のインストールが最初のステップです。

Ubuntu での JDK のインストールは、Windows に比べて簡単で、環境変数の設定は必要ありません。1 行のコマンドでインストールできます。

apt install openjdk-8-jre-headless  	#openjdk 8をインストール

インストールが完了したら、次のコマンドを使用してバージョンを確認します。

java -version		#バージョンを確認

JDK のパスの設定#

インストールが完了したら、idea で WSL の JDK パスを設定する必要があります。

image-20220707132903716

デフォルトの設定は以下の通りです。

/usr/lib/jvm/java-8-openjdk-amd64

コピーしたインスタンスの設定#

ローカルの Windows で実行されているインスタンスを選択し、右クリックして「copy configuration」を選択すると、そのインスタンスをコピーすることができます。

image-20220707134154932

次に、コピーしたインスタンスの設定情報を変更する必要があります。ポートなどを変更しない場合、ポートの競合が発生します。

設定情報は、application.properties 形式で記述することをおすすめします。

VM options でポートを設定するには、ショートカットキーAlt + Vを使用します。

-Dserver.port=8082		#元のポートを8082に上書き

Program arguments で eureka とデータベースの情報を設定するには、ショートカットキーAlt + Rを使用します。

#192.168.0.192をローカルのWindowsのIPアドレスに変更し、10086をeurekaの設定ポートに変更
--eureka.client.service-url.defaultZone=http://192.168.0.192:10086/eureka
#データベースの設定を変更
--spring.datasource.url=jdbc:mysql://192.168.0.192:3306/cloud_user?useSSL=false
--spring.datasource.username=root
--spring.datasource.password=root
--spring.datasource.driver-class-name=com.mysql.jdbc.Driver

注意事項#

Windows の MySQL データベースにアクセスできるかどうかをテストしたい場合は、MySQL をインストールすることができます。

apt-get install mysql-server

その後、MySQL のリモートアクセスをテストします。

mysql -h 192.168.0.192 -uroot -p

タイムアウトが発生する場合は、Windows の 3306 ポートを開放する必要があります。

Windows のファイアウォールを開き、インバウンドルールで新しいルールを選択します。

image-20220707134749535

ポートを選択します。

image-20220707134813053

デフォルトの MySQL ポート 3306 を入力します。

image-20220707134842610

次へをクリックし、デフォルトの設定で次へをクリックします。

結論#

image-20220707135037146

eureka が 2 つの userservice インスタンスを検出していることがわかります。1 つは Windows のインスタンスで、もう 1 つは WSL のインスタンスです。

image-20220707135154328

データベースへのアクセスも問題ありません。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。