LoginSignup
1
1

More than 5 years have passed since last update.

WebアプリをデプロイしたWebLogicのDockerイメージを簡単に作成する方法

Last updated at Posted at 2016-11-23

前提:
* 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.1Quick 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を編集
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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1