Jenkinsがずっとwinstone上で動いててかわいそうだったのでGlassFish上で動かすようにした。その際GlassFishのコマンドラインの仕組みがちょい謎で理解するのに若干時間がかかったのでメモしておく。
以下、$GLASSFISH_DIRは適宜読み替える。
新たなドメインを作成する
http://docs.oracle.com/cd/E19776-01/820-4497/6nfv6jlis/index.html
$GLASSFISH_DIR/bin/asadmin create-domain --portbase {ポート番号} --domaindir {新たなドメインの中身を配置するディレクトリ} {ドメイン名}
- portbaseを指定すると、{指定した番号+48}がadminポート、{指定した番号+80}がinstanceのポート、のように割り振ってくれる(--adminportとか--instanceportで個別に指定することもできる)
- domaindirを指定しない場合はglassfish($GLASSFISH_DIR/glassfish/domainsとか)の中にドメインのルートディレクトリが作成される
作成したドメインに対する管理コマンド発行
そのドメインに対してというかそのドメインのadminポートに向かってコマンドを発行するような感じになる。
以下、上記portbaseで指定した番号+48を$ADMIN_PORTとする
デプロイ
$GLASSFISH_DIR/bin/asadmin --host localhost --port $ADMIN_PORT deploy {warへのパス}
JVMオプション追加
$GLASSFISH_DIR/bin/asadmin --host localhost --port $ADMIN_PORT create-jvm-options -D{name}={val}
作成したドメインの起動、停止
なぜかdomaindirとdomain名の両方を指定しないといけなくて少々面倒
起動
$GLASSFISH_DIR/bin/asadmin start-domain --domaindir {さっき指定したやつdomaindir} {さっき指定したドメイン名}
停止
$GLASSFISH_DIR/bin/asadmin stop-domain --domaindir {さっき指定したやつdomaindir} {さっき指定したドメイン名}