theia-ide/theia
を試す。
theia-ide/theia-apps
にいろんな Dockerfile があるので、それを参考に Java 開発環境を構築していく。
前提
- 実施環境
- OS: Windows10 Pro
- docker: Docker version 18.09.2, build 6247962
- 目標環境
- lsp4snippet の開発環境
- Java12
- redhat-developer/vscode-java
- lsp4snippet の開発環境
Visual Studio Code プラグインが使えるようなのでそれを使う。
必要なファイルの作成
theia-ide/theia-apps/theia-go-docker
に VS Code プラグインを有効にしたいときの参考になる Dockerfile
, package.json
がある。
それを参考に作って、同じディレクトリに格納する。
Dockerfile
ARG NODE_VERSION=10
FROM node:$NODE_VERSION
WORKDIR /home/theia
ADD package.json ./package.json
ARG GITHUB_TOKEN
# OpenJDK12 をダウンロード・配置・環境変数設定
RUN mkdir -p /opt/java && \
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 && \
tar xf /tmp/openjdk-12.0.1_linux-x64_bin.tar.gz -C /opt/java/ && \
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}
RUN yarn --pure-lockfile && \
NODE_OPTIONS="--max_old_space_size=4096" yarn theia build && \
yarn --production && \
yarn autoclean --init && \
echo *.ts >> .yarnclean && \
echo *.ts.map >> .yarnclean && \
echo *.spec.* >> .yarnclean && \
yarn autoclean --force && \
yarn cache clean
# See : https://github.com/theia-ide/theia-apps/issues/34
RUN adduser --disabled-password --gecos '' theia && \
chmod g+rw /home && \
mkdir -p /home/project && \
chown -R theia:theia /home/theia && \
chown -R theia:theia /home/project;
USER theia
# configure Theia
ENV SHELL=/bin/bash \
THEIA_DEFAULT_PLUGINS=local-dir:/home/theia/plugins
EXPOSE 3000
ENTRYPOINT [ "node", "/home/theia/src-gen/backend/main.js", "/home/project", "--hostname=0.0.0.0" ]
package.json
{
"private": true,
"dependencies": {
"@theia/git": "next",
"@theia/editor-preview": "next",
"@theia/getting-started": "next",
"@theia/json": "next",
"@theia/plugin-ext-vscode": "next",
"@theia/preview": "next",
"@theia/textmate-grammars": "next"
},
"devDependencies": {
"@theia/cli": "next",
"@theia/debug": "next"
},
"scripts": {
"postinstall": "download-debug-adapters"
},
"adapterDir": "plugins",
"adapters": {
"vscode-java": "https://redhat.gallery.vsassets.io/_apis/public/gallery/publisher/redhat/extension/java/0.46.0/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage"
}
}
ポイントは以下三点。
scripts/postinstall
: プラグインダウンロードに使うスクリプト、adapterDir
,adapters
でプラグインを導入する場合必須adapterDir
: プラグインを入れるディレクトリadapters
: インストールするプラグイン(vsix
)を列挙
イメージビルド
Dockerfile
と package.json
のあるディレクトリでビルドコマンドを実行。
docker build -t mikoto2000/theia-java:latest .
コンテナ実行
docker run --rm -p "3000:3000" mikoto2000/theia-java:latest
ブラウザで接続
localhost:3000
にアクセス。プラグインを確認すると、 vscode-java が入っているのがわかる。
以上。
0 件のコメント:
コメントを投稿