code-serverのJava Web研究開発環境の導入

3498 ワード

Code-ServerはVsコードのweb導入実装であり、ユーザーがブラウザ内でVsコードを使用して開発できるようにしている.公式Github詳細:cdr/code-server
Code-ServerのデフォルトインプリメンテーションにはJava環境などの開発に必要なソフトウェアが付いていないため、公式ミラーに他の必要なプログラムやプラグインを追加する必要があります.
以下、私自身が使っているJava Web開発環境の準備方法を簡単にご紹介します.主にSpring Cloudのマイクロサービス応用研究開発に用いられる.
Dockerfile
ここでは主にMicrosoftmarketからプラグイン(vsix)をダウンロードしておきますが、実際にはCode-Server自身が修正したプラグインのリストがあり、更新もタイムリーですが、ダウンロード速度が遅すぎる場合があるので、vsixプラグインを用意しています.また,jdk,maven,git,svn,curl,wget,npmなどの一般的なツールをインストールした.
ここでnpmをインストールするのはsvnプラグインの応用問題によるもので、以下で具体的に説明する.
FROM codercom/code-server:1.939
COPY vsix /vsix/
COPY jdk8 /usr/share/jdk8/
RUN mkdir ~/.m2
COPY settings.xml ~/.m2/settings.xml
ENV PATH=/usr/share/jdk8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV CLASSPATH=.:/usr/share/jdk8/lib:/lib
ENV JAVA_HOME=/usr/share/jdk8
ENV LC_ALL=en_US.UTF-8
ENV LANG=en_US.UTF-8
RUN sudo apt-get update && sudo apt-get install -y subversion maven git curl wget npm

#### jschardet, iconv-lite       svn-scm    
RUN cd /usr/local/bin && sudo npm install -g jschardet
RUN cd /usr/local/bin && sudo npm install -g iconv-lite
#### jschardet, iconv-lite       svn-scm    

COPY shell /shell/
EXPOSE 8443
WORKDIR /home/coder/project
ENTRYPOINT ["code-server"]

SVNカードの問題
詳細は、svn-scm issue 546は、code-serverではsvnウィンドウをアクティブにすることができず、エラーメッセージも表示できないことを主に示している.
その後、このプラグインは1.48にアップグレードされました.5バージョン以降はエラーメッセージが表示されるので、異常情報に基づいて修復できます.
注意:ここでは修復時にDockerfileにnpmを予め用意する、jschardet,iconv-liteをインストールする以外に、code-server環境に入った後もエラーが報告される確率があり、テストはヒントに従って/usr/local/binディレクトリに入り、もう一度インストールを実行すればよい.すなわち、cd/usr/local/bin&&sudo nom install jschardet&&nom install iconv-lite
構成の状態を保存
上記から分かるように、カスタムミラーを構築した後も、code-server環境に入ってプラグインをインストールし、必要な構成を行う必要があります.この時点でコンテナが終了し、ミラーを再プルして起動すると、これらのカスタム操作は保存されません.そのため、カスタム操作後、これらの操作を記録する必要があります.コンテナを変更してミラーをもう1つ打つだけです.
docker commit -m "installed vsix and other stuff" -a "wengshengyuan" XXXXXXXXXX my-private-docker-repo/codercom/code-server:v1.0_your_custom_version

ここのXXXXXXXXXXはコンテナid(Container ID)で、自分の私服にバックアップしてパッケージ化し、次回はこのカスタムミラーを使用すればよい.
いくつかの問題に直面した.
ここでは構成中に発生した問題を記録して、後で新しいものがあればゆっくり補充します.
Java Language Supportエラー
これはJava Language Serverの動作に異常が発生したもので、ある使用中またはプラグインのインストール中にプロセスが正しく終了しなかったためかもしれません.プラグインログには次のような出力が表示され、javaデバッグは実行できません.
[Info - 11:53:23 AM] Connection to server got closed. Server will restart.
[Info - 11:53:29 AM] Connection to server got closed. Server will restart.
[Info - 11:53:35 AM] Connection to server got closed. Server will restart.
[Info - 11:53:41 AM] Connection to server got closed. Server will restart.
[Error - 11:53:47 AM] Connection to server got closed. Server will not be restarted.

解決策は、Java Language serverを再起動すればよい.WindowでF1、Macでcommand + shift+ pを押してコマンド入力ボックスを開き、Javaに入力してJava: Clean the Java language server workspaceを実行すればよい