EclipseプラグインであるIBM Liberty Developer Toolsを使うとEclipseからLiberty上へアプリケーションのデプロイやデバッグを行うことができます。Docker上で稼働しているLibertyへもデプロイすることができるので試してみました。
プラグインの導入
Eclipse Marketplaceから探します。
https://marketplace.eclipse.org/content/ibm-liberty-developer-tools
WebSphere Application Server Liberty Docker Toolsにチェックを入れて導入します。
Dockerコンテナの準備
Docker Desktopを導入してからDockerイメージを以下から探します。今回は19.0.0.5-kernel
を使うことにします。
https://hub.docker.com/_/websphere-liberty/
Liberty Docker Toolsを使う場合は、イメージを作ってコンテナを稼働した状態にしてからEclipseから接続するようなので、まずはイメージを作ります。
Libertyの構成ファイルであるserver.xmlは以下にしました。<administrator-role>
要素あることとhttpsで公開していることが必須なようです。<feature>restConnector-2.0</feature>
も有効化しました。
<server description="new server">
<featureManager>
<feature>localConnector-1.0</feature>
<feature>servlet-4.0</feature>
<feature>restConnector-2.0</feature>
</featureManager>
<httpEndpoint host="*" httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>
<applicationManager autoExpand="false"/>
<applicationMonitor updateTrigger="mbean"/>
<administrator-role>
<user>admin</user>
</administrator-role>
<basicRegistry>
<user name="admin" password="password"/>
</basicRegistry>
<keyStore password="password"/>
</server>
Dockerfileは以下のようにします。上記のserver.xmlをイメージに含めることと、必要なフィーチャーの導入を行うだけです。
FROM websphere-liberty:19.0.0.5-kernel
COPY --chown=1001:0 server.xml /config/
RUN installUtility install --acceptLicense defaultServer
イメージの作成とコンテナの起動
準備ができたので、イメージを作ってコンテナを起動します。ポートを公開します。
docker build -t myimage:0.0.1 .
docker run -d --rm -p 9080:9080 -p 9443:9443 --name mycon myimage:0.0.1
Eclipseから接続
Eclipseに戻ってコンテナへの接続を行います。Server Viewからサーバーの追加を行います。Server in Docker containerを選択します。Refreshボタンを押すと先ほど起動したコンテナが出てきました。<administrator-role>
で設定したユーザー、パスワードを入力します。
ホストのmacOSのディレクトリをマウントして良いのでYesを選択します。
アプリケーションを公開します。その都度コンテナを作り直してくれるようです。デバッグモードで起動し直す時も自動的にイメージを作成し直して起動するとことまで自動的に実行されました。
参考