のためのコードセットアップセットアップ
4570 ワード
最近、私は主流プロジェクト/アプリケーションのためのスプリングブートとDocker開発のためにどのようにレバレッジとコードエディタを使用するかを見始めました.この記事では、すぐに開始される微妙なポイントをカバーしようとします.
拡張パックのインストール Javaランタイムの設定 セットアップDockerは、パスを構成する リモートデバッグを有効にする環境設定
開始部分は比較的簡単で、必要なのは以下の拡張モジュールをインストールすることです — Extension Pack for Java Spring Boot Extension Pack Spring Boot Dashboard Lombok Annotations Support Docker
あなたが私のような場合は、別のJDKを使用してプロジェクトを持っている可能性があります.私のマシン上で複数のJDKを管理する方法の一つはSDKMAN . VSコードで遭遇した問題は、様々なランタイムへのパスを手動で指定する必要があります.設定を編集することで同じことができます.JSONのように-
私は、私たちのpringbootアプリケーションのほとんどは、同じdockerfileを使用していると、それらのargsを使用していることに気づいた.そのようなファイルのサンプルは、ここにあります —
最後のビットは、デバッグ・ポートで実行されているスプリング・ブート・アプリケーションを取得し、リモートデバッガに対するVSコード接続を持つことでした.私は強迫的ではない解決策を探していたし、複数の管理したくなかった
これは、設定によって達成された
ハッピーデバッグ!
TL;DR
settings.json
BUILD_ARGS
拡張パックのインストール
開始部分は比較的簡単で、必要なのは以下の拡張モジュールをインストールすることです —
ランタイムの構成
あなたが私のような場合は、別のJDKを使用してプロジェクトを持っている可能性があります.私のマシン上で複数のJDKを管理する方法の一つはSDKMAN . VSコードで遭遇した問題は、様々なランタイムへのパスを手動で指定する必要があります.設定を編集することで同じことができます.JSONのように-
“java.configuration.runtimes”: [
{
“name”: “JavaSE-1.8”,
“path”: “$HOME/.sdkman/candidates/java/8.0.275.hs-adpt”
},
{
"name": "JavaSE-15",
"path": "$HOME/.sdkman/candidates/java/15.0.2.j9-adpt"
},
{
“name”: “JavaSE-11”,
“path”: “$HOME/.sdkman/candidates/java/11.0.14-zulu”,
“default”: true
}
]
ドッカービルダーズ
私は、私たちのpringbootアプリケーションのほとんどは、同じdockerfileを使用していると、それらのargsを使用していることに気づいた.そのようなファイルのサンプルは、ここにあります —
FROM openjdk:11.0.12-jre-slim-bullseye
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=UTC", "-XshowSettings:vm", "-XX:+UseContainerSupport", "-jar", "-Xms2048M", "-XshowSettings:vm", "/app.jar"]
これはVSコードにあまり関係していませんが、以下のコマンドを実行することによってDockerのイメージを使用してDockerイメージを構築したい類似の問題に遭遇しているかもしれない読者に役立つかもしれないと思いました — docker compose up --build myApp -d
これの代替は、マルチステッププロセスです$ docker compose build myApp --build-arg JAR_FILE=target/myApp.jar
$ docker compose up myApp
これは流暢ではない.私はいくつかのオプションを試してみて、最後にいくつかのヒットと裁判で私は魅力のように動作するサービスの定義を見つけた.ここでは、Dockerの構成サービスのサンプルです —version: '3.2'
services:
myApp:
build:
context: ./myApp
args:
JAR_FILE: target/myApp.jar
ports:
- "8080:8080"
上記の構成は、マルチモジュールmaven
/gradle
セットアップとmyApp
は、春のブートアプリケーションの1つです.リモートデバッグのためのVSコードの設定
最後のビットは、デバッグ・ポートで実行されているスプリング・ブート・アプリケーションを取得し、リモートデバッガに対するVSコード接続を持つことでした.私は強迫的ではない解決策を探していたし、複数の管理したくなかった
DOCKERFILE
同じプロジェクトのためのsは、デバッグのために、そして、生産のためにイメージを構築するために、1です.これは、設定によって達成された
JAVA_TOOL_OPTION
Dockerの環境変数がそうであるファイル自体を構成します —version: '3.2'
services:
myApp:
build:
context: ./myApp
args:
JAR_FILE: target/myApp.jar
environment:
- JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=*:8081,server=y,suspend=n
ports:
- "8080:8080"
- "8081:8081"
ここでDocker comup - upコマンドを使用してアプリケーションを起動すると、ログ文を参照する必要があります.これは、リモートデバッグのためにリモート接続を —Picked up JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,address=*:8081,server=y,suspend=n
Listening for transport dt_socket at address: 8081
次の部分はリモートデバッガに接続するためのVSコードの設定でした.この部分は比較的簡単だった.新しい「run and debug」設定を追加する —{
"type": "java",
"name": "Remote MyApp Debug (attach)",
"request": "attach",
"hostName": "localhost",
"port": 8081
}
とVoila!コンテナの中で実行中のスプリングブートアプリケーションに接続できます.ハッピーデバッグ!
Reference
この問題について(のためのコードセットアップセットアップ), 我々は、より多くの情報をここで見つけました https://dev.to/amitmisra16/vs-code-setup-for-spring-boot-dockercompose-4bgiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol