日々精進

新しく学んだことを書き留めていきます

dockerのWAS Libertyコンテナを使ってデバッグ実行をする方法

以下を参考に、WAS Libertyコンテナを動かすと、 wlp/bin/server run コマンドでWASが起動されるのでデバッグ実行できない。

https://hub.docker.com/_/websphere-liberty/

最初、dockerはコンテナ作成時に、コンテナ起動時に実行するコマンド(DockerfileのCMDで指定されているコマンド)を上書き出来る ので、以下のようにしてwlp/bin/server debugに上書きすればうまくいくのではと思ったがだめだった。

docker run -it -d -p 9080:9080 -p 9443:9443 -p 7777:7777 -p 9060:9060 websphere-liberty /opt/ibm/wlp/bin/server debug

最初にrunした時は問題無いが、一度stopした後startした場合、WASが7777ポートは掴んでいるがアプリサーバとしては動いていないという謎の状態になってしまう。 結局、以下のように起動時にはシェルだけ動かすようにして、その後ログインしてWASを起動するようにした。

docker run -it -d -p 9080:9080 -p 9443:9443 -p 7777:7777 -p 9060:9060 websphere-liberty /bin/bash
docker exec -it <container name> bash
/opt/ibm/wlp/bin/server debug