WebLogic Server 12.2.1 がインストールされた Docker コンテナを、Vagrant のゲストOS上に構成する
本記事では、Oracle 公式の Dockerfile とスクリプトを利用して、WebLogic Server 12.2.1 がインストールされた Docker コンテナを、Vagrant のゲストOS上に構成します。
この手順により、以下のような構成の WLS 12.2.1 環境が出来上がります。
-------------------------------------------------- | Dockerコンテナ (Oracle Linux 7.0) + WLS 12.2.1 | -------------------------------------------------- | ゲストOS(CentOS 7) + Docker | -------------------------------------------------- | ホストOS (Windows) + VirtualBox | --------------------------------------------------
私の環境は Windows 7 Professional x64 なので、本手順の実績のあるホストOSは左記のものになります。また、WLS のドメインは、本記事の手順では空のドメインが構成されます。
サンプルアプリなどがインストールされた環境を作ることもできるはずですが、手順を確立したら、追って紹介したいと思います。
手順
1. 事前準備
1-1. 必要なソフトウェアを準備する
はじめに、ソフトウェアをインストールしていきます。(括弧内は、本手順の確認に使用したバージョン)
- VirtualBox (5.0.8)
- Cygwin (2.2.1)
- Vagrant (1.7.4)
1-1-1. VirtualBoxのインストール
ダウンロードサイトから適切なインストーラをダウンロードし、実行します。
1-1-2. Cygwinのインストール
ダウンロードサイトから適切なインストーラをダウンロードし、実行します。
Cygwinのインストールの際、以下のコンポーネントを併せてインストールしておく必要がありますので注意してください(後からでも追加できます)。
- openssh
- rsync
インストールが完了したら、Cドライブへのシンボリックリンクを貼っておきます。これにより、ゲストOSとホストOSの共有フォルダを構成する際に、ホストOS側のパスを正しく解決できるようにします。
Cygwinを起動して、以下のコマンドを実行してください。
$ cd /
$ ln -s /cygdrive/c c
1-1-3. Vagrantのインストール
ダウンロードサイトから適切なインストーラをダウンロードし、ウィザートにしたがってインストールします。
インストールが完了したら、vbguestプラグインをインストールします。これにより、VagrantにVirtutalBoxのguest additionsを自動更新するためのプラグインをインストールします。
Cygwinを起動して、以下のコマンドを実行してください。
$ cd ~/
$ vagrant plugin install vagrant-vbguest
1-2. 作業フォルダを作成する
今回は、作業フォルダのトップを "~/dock" とします。ここが Vagrant プロジェクトのルートディレクトリも兼ねることにします。
Cygwinを起動して、以下のコマンドを実行します。
$ mkdir ~/dock
1-3. Oracle 公式の Dockerfile、スクリプト群をダウンロードする
Oracle が提供する Dockerfile、スクリプト群 をダウンロードします。公式のマニュアルからリンクされていますので、Oracle が公式に提供しているもののようです。
上記リンク先で、[Download ZIP] をクリックして zip アーカイブをダウンロードします。アーカイブを解凍したら、docker-master ディレクトリ配下のファイル、ディレクトリを、~/dock 直下にコピーします。
1-4. Vagrantfile を作成する
ゲストOSは Vagrant を使ってプロビジョニングするので、Vagrantfile を ~/dock の配下に作成します。
内容は以下のようにします。リソースの割当て量は、環境に合わせて調整してください。
Vagrant.configure(2) do |config| config.vm.define :dock, primary: true do |dock| # VM settings dock.vm.box = "centos/7" dock.vm.provider "virtualbox" do |v| v.name = "dock" v.cpus = "2" v.memory = "4096" end dock.vm.synced_folder ".", "/vagrant", type: "rsync" dock.vm.network "forwarded_port", host: 5556, guest: 5556 dock.vm.network "forwarded_port", host: 7001, guest: 7001 dock.vm.network "forwarded_port", host: 7011, guest: 7011 dock.vm.network "forwarded_port", host: 8001, guest: 8001 # Provisioner settings config.vm.provision "docker" end end
ゲストOSに Dockerfile 等を転送する手間を省くために、~/dock(カレントディレクトリ)との共有ディレクトリを設定しています。
また、WebLogic Server を使うときに用いる主要なポート対し、ポートフォワーディングの設定をしています。
1-5. WebLogic Server,JDKのインストーラをダウンロードする
以下のインストーラをダウンロードし、~/dock/OracleWebLogic/dockerfiles/12.2.1/ に配置します。
ここまでの手順を終えると、ディレクトリは、以下の様な構成となるはずです。間違って配置されていないか、注意してください。
~/dock ├─MySQL/ ├─OracleCoherence/ │ … ├─OracleWebLogic/ │ ├─dockerfiles/ │ │ ├─12.1.3/ │ │ │ … │ │ ├─12.2.1/ │ │ │ ├―fmw_12.2.1.0.0_wls_quick.jar │ │ │ ├―jdk-8u60-linux-x64.rpm │ │ │ └―Dockerfile.developer │ │ │ … │ │ └─buildDockerImage.sh │ └─samples/ │ ├─1213-domain/ │ │ └─container-scripts/ │ │ … │ │ … │ └─1221-domain/ │ ├─container-scripts/ │ │ … │ └―Dockerfile.emptydomain │ … ├─README.md └―Vagrantfile
以上で準備完了です。
2. ゲストOS、Dockerコンテナを起動する
2-1. ゲストOSのプロビジョニング
ゲストOSの box イメージを取得します。本記事では CentOS 7 を利用します。Cygwin を起動して、以下のコマンドを実行します。
$ vagrant box add centos/7 --provider virtualbox
次に、以下のコマンドを実行します。ゲストOSのプロビジョニングが行われ、続けてゲストOSが起動します。
$ cd ~/dock
$ vagrant up
上記のコマンドの完了したら、SSHでゲストOSに接続し、~/sync フォルダ以下にホストOSの ~/dock 配下のファイルが参照できることを確認してください。
$ vagrant ssh
[vagrant@guest] $ ls ~/sync
2-2. Dockerイメージのビルド
以下のコマンドを実行して Docker イメージをビルドします。以降のコマンドは、ゲストOS上で実行することに注意してください。
[vagrant@guest] $ cd ~/sync/OracleWebLogic/dockerfiles
[vagrant@guest] $ sudo sh buildDockerImage.sh -v 12.2.1 -d
ビルドの処理の中で、WebLogic Server のインストールも行われます。正常に処理が完了すると、WebLogic Server をインストール済みの Docker イメージができあがります。
更に、上記の Docker イメージをベースにして、空のWLSドメインを構成済みの Docker イメージをビルドします。
[vagrant@guest] $ cd ~/sync/OracleWebLogic/samples/1221-domain
[vagrant@guest] $ ln -s ./Dockerfile.emptydomain ./Dockerfile
[vagrant@guest] $ sudo docker build -t myweblogic:12.2.1 ./
2-3. Dockerコンテナの起動
以下のコマンドを実行して、ビルドした Docker イメージからコンテナを起動します。startWebLogic.sh が自動的に実行されます。
[vagrant@guest] $ sudo docker run -p 5556:5556 -p 7001:7001 -p 7011:7011 -p 8001:8001 -it --name=wlsadmin myweblogic:12.2.1
上記のコマンドで、-p オプションを複数していますが、これらは、Docker コンテナとゲストOS間のポートフォワーディングの設定です。
バックグラウンドで起動する場合は、以下のようにコマンドのオプションを変更します。
[vagrant@guest] $ sudo docker run -p 5556:5556 -p 7001:7001 -p 7011:7011 -p 8001:8001 -d --name=wlsadmin myweblogic:12.2.1
2-4. 管理コンソールにアクセスしてみる
Dockerコンテナへのポートフォワーディングが設定済みです。ホストOSのブラウザで、以下のURLにアクセスすると、WLSの管理コンソールにアクセスできます。
http://localhost:8001/console
管理者ユーザーのユーザーのユーザー名、パスワードは以下のとおりです。
- ユーザー名: weblogic
- パスワード: welcome1
WebLogic Server 12.2.1 がインストールされた Docker コンテナを、Vagrant のゲストOS上に構成する手順は、以上です。