cdr/code-server
を試す。
codercom/code-server
をベースイメージにして開発環境一式を整えれば、簡単に独自環境のコンテナを作れるっぽい。
前提
- 実施環境
- OS: Windows10 Pro
- docker: Docker version 18.09.2, build 6247962
- 目標環境
- lsp4snippet の開発環境
- Java12
- redhat-developer/vscode-java
- lsp4snippet の開発環境
まずはコンテナに入って環境構築を試す
コンテナ起動
docker run -it --rm --entrypoint=/bin/bash -p 127.0.0.1:8443:8443 codercom/code-server
開発環境構築準備
インタラクティブモードで環境構築
# ベースのアップグレード
export http_proxy=http://host.docker.internal:3142
sudo apt-get update
sudo apt-get -y upgrade
# OpenJDK12 をダウンロード・配置・環境変数設定
curl -LO --silent https://download.java.net/java/GA/jdk12.0.1/69cfe15208a647278a19ef0990eea691/12/GPL/openjdk-12.0.1_linux-x64_bin.tar.gz
sudo mkdir -p /opt/java
sudo tar xf ./openjdk-12.0.1_linux-x64_bin.tar.gz -C /opt/java/
rm ./openjdk-12.0.1_linux-x64_bin.tar.gz
export JAVA_HOME=/opt/java/jdk-12.0.1
export PATH=${JAVA_HOME}/bin:${PATH}
# redhat-developer/vscode-java をダウンロードしてインストール
curl -LO --silent https://github.com/redhat-developer/vscode-java/releases/download/v0.46.0/redhat.java-0.46.0.vsix
code-server --install-extension ./redhat.java-0.46.0.vsix
rm redhat.java-0.46.0.vsix
# code-server 起動。お試しなので http, 認証なしで。
dumb-init code-server --allow-http --no-auth
動作確認
localhost:8443
にアクセスして vscode-java が有効になっていることを確認する。OK。
Dockerfile 作成
Dockerfile
FROM codercom/code-server
LABEL maintainer "mikoto2000 <mikoto2000@gmail.com>"
LABEL version="1.0.0"
LABEL description "openjdk12+vscode-java"
# ベースのアップグレード
RUN sudo apt-get update && sudo apt-get -y upgrade \
&& sudo apt-get clean \
&& sudo rm -rf /var/lib/apt/lists/*
# OpenJDK12 をダウンロード・配置・環境変数設定
RUN sudo mkdir -p /opt/java
RUN sudo curl -L https://download.java.net/java/GA/jdk12.0.1/69cfe15208a647278a19ef0990eea691/12/GPL/openjdk-12.0.1_linux-x64_bin.tar.gz -o /tmp/openjdk-12.0.1_linux-x64_bin.tar.gz
RUN sudo tar xf /tmp/openjdk-12.0.1_linux-x64_bin.tar.gz -C /opt/java/
RUN sudo rm /tmp/openjdk-12.0.1_linux-x64_bin.tar.gz
ENV JAVA_HOME=/opt/java/jdk-12.0.1
ENV PATH=${JAVA_HOME}/bin:${PATH}
# redhat-developer/vscode-java をダウンロードしてインストール
RUN sudo curl -L https://github.com/redhat-developer/vscode-java/releases/download/v0.46.0/redhat.java-0.46.0.vsix -o /tmp/redhat.java-0.46.0.vsix
RUN code-server --install-extension /tmp/redhat.java-0.46.0.vsix
RUN sudo rm /tmp/redhat.java-0.46.0.vsix
curl
の出力先を相対パス指定でその場に出力するようにしたら tar: ./openjdk-12.0.1_linux-x64_bin.tar.gz: Cannot open: No such file or directory
と怒られてしまった。 仕方ないので /tmp
に出力するようにした。
ビルド
docker build --build-arg http_proxy=http://host.docker.internal:3142 -t mikoto2000/code-server_vscode-java .
動作確認
docker run --rm -p "127.0.0.1:8443:8443" mikoto2000/code-server_vscode-java --allow-http --no-auth
localhost:8443
にアクセスして、 vscode-java の存在を確認。
lsp4snippet を clone して補完機能を試した。良い感じでは?
以上。