前提:
* GitとDockerが使える環境が既にある
* LinuxかMacを使っている (Windowsの場合は、適宜読み替えができる)
参考:
https://github.com/oracle/docker-images/tree/master/OracleWebLogic
の中の各種READMEなど
1. 必要なものをダウンロード・用意
Oracle社公式のDockerイメージ
$ git clone --depth 1 https://github.com/oracle/docker-images
$ export WLS_DOCKER_DIR=`pwd`/docker-images
以下、docker-images/
のパスを$WLS_DOCKER_DIR
と表記します。
Java 8
- JavaのOTNサイトにて、利用許諾確認してダウンロード
- Linux x64版のJava8(マイナーバージョンは不問)
-
$WLS_DOCKER_DIR/OracleJava/java-8
に配置
WebLogic
- WebLogicのOTNサイトにて、利用許諾確認してLinux x64版をダウンロード
- 12.2.1のQuick Installer for Mac OSX, Windows and Linux
-
$WLS_DOCKER_DIR/OracleWebLogic/dockerfiles/12.2.1
に配置 - MD5チェックサムを、上記ディレクトリ内の
*.download
と比較して確認
Webアプリケーション
- 起動時にデプロイしたいwarファイルを用意
- 無ければ以下の手順は不要。デフォルトのsample.warがデプロイされる
-
$WLS_DOCKER_DIR/OracleWebLogic/samples/1221-appdeploy/container-scripts
に配置 -
sample.war
以外のファイル名の場合は、1221-appdeploy
内のDockerfile
を編集
ENV APP_NAME="yourapp" \
APP_PKG_FILE="yourapp.war" \
APP_PKG_LOCATION="/u01/oracle"
2. Java Dockerイメージのビルド
$ cd $WLS_DOCKER_DIR/OracleJava/java-8
$ sh build.sh
...
Successfully built 4f40dfabddcf
3. WebLogic Dockerイメージのビルド
$ cd $WLS_DOCKER_DIR/OracleWebLogic/dockerfiles
$ sh buildDockerImage.sh -v 12.2.1 -d -s
...
Successfully built 0babafe5a6e3
WebLogic Docker Image for 'developer' version 12.2.1 is ready to be extended:
--> oracle/weblogic:12.2.1-developer
Build completed in 313 seconds.
「md5sum」がない環境でも実行できるよう、-s
をつけてチェックサム比較処理を回避しています。
4. ドメイン作成処理を追加したイメージのビルド
1221-domainを使います。
$ cd $WLS_DOCKER_DIR/OracleWebLogic/samples/1221-domain
$ docker build -t 1221-domain --build-arg ADMIN_PASSWORD=Welcome1 .
...
Successfully built fe9f79ebf038
5. アプリ配備処理を追加したイメージのビルド
1221-appdeployを使います。
$ cd $WLS_DOCKER_DIR/OracleWebLogic/samples/1221-appdeploy
$ docker build -t 1221-appdeploy .
...
Successfully built 494b3094399f
6. WebLogicサーバーの起動
$ docker run -d --name=wlsadmin -p 8001:8001 1221-appdeploy
管理サーバーの管理ポートが8001のため、Docker Machineのポート8001で、管理コンソールなどにアクセスできるようにしています。
起動したコンテナの状態を確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b996bbfa077e 1221-appdeploy "startWebLogic.sh" 8 seconds ago Up 7 seconds 5556/tcp, 7001/tcp, 8453/tcp, 0.0.0.0:8001->8001/tcp wlsadmin
7. WebLogic管理コンソールやサンプルへのアクセス
管理コンソール
http://localhost:8001/console (weblogic/Welcome1でログイン)
サンプル
http://localhost:8001/sample (warファイルを入れ替えていない場合)
8. 片付け
$ docker stop wlsadmin
$ docker rm wlsadmin
注意点
Oracle製品をプロジェクトに含んだ状態でDockerイメージを公開すると、利用許諾違反となります。また、利用許諾承認プロセスが組み込めないため、DockerHubにWebLogicのビルド済みイメージが公開される可能性は無いようです。レジストリサーバーを立てて、そこにビルド済みイメージを置いてDev/Ops間で共有するのは良いようです。
参考:
There should be official Versions of Weblogic on DockerHub. #13
Put this on docker hub #109