WebLogic 12.2.1.3 の Docker を作成する

# 前置き

WebLogic 12.2.1.3 の Docker を作成していきます。
intra-mart の検証用として利用したいので、intra-mart が要求する設定をあらかじめ実施します[intra-mart Accel Platform セットアップガイド (WebLogic編)](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_wls/index.html)
これによって、Oracle 公式の Docker イメージと異なり、docker run 後何も考えずにすぐに検証用として利用できるような WebLogic の環境が作れるようになります。

# Docker ベースイメージ(CentOS 6.10)

いつものようにベースイメージから作ります。
CentOS 6.10 Final を利用します。

```dockerfile:Dockerfile
FROM centos:centos6

EXPOSE 22

# yum
RUN yum -y update \
 && yum provides -y '*/applydeltarpm' \
 && yum groupinstall -y 'Development Tools' \
 && yum install -y --enablerepo centosplus wget curl vim emacs tar unzip mlocate perl ssh openssh-server openssl-devel \
 && rm -rf /var/cache/yum/* \
 && yum clean all

# locale
RUN yum reinstall -y glibc-common \
 && localedef -i ja_JP -f UTF-8 ja_JP.utf8 \
 && touch /etc/sysconfig/i18n \
 && echo 'LANG="ja_JP.UTF-8"' >> /etc/sysconfig/i18n
ENV LANG ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja

# timezone
RUN yum install -y tzdata \
 && echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock \
 && echo 'UTC=false' >> /etc/sysconfig/clock \
 && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# root passwd
RUN bash -c 'echo "root:password" | chpasswd'

# ssh
RUN sed -i -e "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" /etc/ssh/sshd_config \
 && sed -i -e "s/#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config \
 && sed -i -e "s/UsePAM yes/UsePAM no/g" /etc/ssh/sshd_config

RUN updatedb

CMD /etc/init.d/sshd restart && /bin/bash
```

ビルドします。

```shell
docker build -t mycentos:6.10 .
```

作成したベースイメージを元にもう一つベースイメージを作成します。
DB を別途用意するのも面倒なので PostgreSQL や Cassandra も一緒に入れてすぐ使える状態で起動するようにします。

```dockerfile:Dockerfile
FROM mycentos:6.10

EXPOSE 22 5432 8983 9160

# yum
RUN yum -y update \
 && yum -y upgrade && yum -y update \
 && yum localinstall -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm \
 && yum install -y postgresql96-server \
 && yum install -y --setopt=protected_multilib=false epel-release ld-linux.so.2 libstdc++.so.6 libpng12 nc \
 && rm -rf /var/cache/yum/* \
 && yum clean all

# JDK
COPY setup_jdk.sh /setup_jdk.sh
RUN chmod +x /setup_jdk.sh \
 && /setup_jdk.sh \
 && rm -f /setup_jdk.sh \
 && echo 'JAVA_HOME=/usr/local/java/jdk' >> /root/.bashrc \
 && echo 'PATH=$PATH:/usr/local/java/jdk/bin' >> /root/.bashrc
ENV JAVA_HOME /usr/local/java/jdk
ENV PATH /usr/local/java/jdk/bin:$PATH

# PostgreSQL
COPY setup_postgresql.sh /setup_postgresql.sh
RUN chmod +x /setup_postgresql.sh \
 && /setup_postgresql.sh \
 && rm -f /setup_postgresql.sh

# JDBC Driver
RUN mkdir -p /opt/jdbc
COPY postgresql-42.2.5.jar /opt/jdbc/postgresql.jar
COPY db2jcc4.jar /opt/jdbc/db2.jar
COPY ojdbc8.jar /opt/jdbc/oracle.jar
COPY mssql-jdbc-7.0.0.jre8.jar /opt/jdbc/sqlserver.jar
COPY ngdbc.jar /opt/jdbc/ngdbc.jar

# Cassandra
COPY setup_cassandra.sh /setup_cassandra.sh
RUN chmod +x /setup_cassandra.sh \
 && /setup_cassandra.sh \
 && rm -f /setup_cassandra.sh \
 && echo 'PATH=$PATH:/usr/local/apache-cassandra/apache-cassandra/bin' >> /root/.bashrc
ENV PATH $PATH:/usr/local/apache-cassandra/apache-cassandra/bin

# Solr
COPY setup_solr.sh /setup_solr.sh
RUN chmod +x /setup_solr.sh \
 && /setup_solr.sh \
 && rm -f /setup_solr.sh

# wkhtmltopdf
COPY setup_wkhtmltopdf.sh /setup_wkhtmltopdf.sh
RUN chmod +x /setup_wkhtmltopdf.sh \
 && /setup_wkhtmltopdf.sh \
 && rm -f /setup_wkhtmltopdf.sh

RUN updatedb
```

```shell:setup_wkhtmltopdf.sh
#!/bin/sh

curl -L -C - -O https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -Jxvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
rm -f wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

mv wkhtmltox /usr/local/wkhtmltox
ln -s /usr/local/wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf

yum install -y vlgothic-fonts
```

PostgreSQL をインストールします。インストール後、以下のユーザを作成します。

* postgres/postgres （ユーザ/パスワード）
* imart/imart  （ユーザ/パスワード）

さらに、以下の DB を作成します。

* imart
* iap_db
* default

さらに、acceldocuments スキーマも作成しておきます。

max_connections と shared_buffers はデフォルトでは小さすぎるため気休め程度に増やしておきます。

```shell:setup_postgresql.sh
#!/bin/bash

service postgresql-9.6 initdb

echo "listen_addresses = '*'" >> /var/lib/pgsql/9.6/data/postgresql.conf
sed -i -e "s/ident$/trust/g" /var/lib/pgsql/9.6/data/pg_hba.conf
sed -i -e "s/127\.0\.0\.1\/32/0\.0\.0\.0\/0/g" /var/lib/pgsql/9.6/data/pg_hba.conf

sed -i -e "s/max_connections = 100/max_connections = 200/g" /var/lib/pgsql/9.6/data/postgresql.conf
sed -i -e "s/shared_buffers = 128MB/shared_buffers = 512MB/g" /var/lib/pgsql/9.6/data/postgresql.conf

echo "postgres:postgres" | chpasswd

service postgresql-9.6 start
sleep 1

su postgres -c "psql -c \"ALTER USER postgres WITH PASSWORD 'postgres'\""
su postgres -c "psql -c \"CREATE ROLE imart WITH LOGIN PASSWORD 'imart'\""
su postgres -c "psql -c \"CREATE DATABASE imart OWNER=imart encoding 'utf8' TEMPLATE template0\""
su postgres -c "psql -c \"CREATE DATABASE iap_db OWNER=imart encoding 'utf8' TEMPLATE template0\""
su postgres -c "psql -c \"CREATE DATABASE \\\"default\\\" OWNER=imart encoding 'utf8' TEMPLATE template0\""
su postgres -c "psql -d imart -c \"CREATE SCHEMA acceldocuments AUTHORIZATION imart\""
su postgres -c "psql -d iap_db -c \"CREATE SCHEMA acceldocuments AUTHORIZATION imart\""
su postgres -c "psql -d default -c \"CREATE SCHEMA acceldocuments AUTHORIZATION imart\""

service postgresql-9.6 stop
```

続いて JDK のダウンロードですが、8u191 が最新バージョンとして公開されている場合以下のような curl でダウンロード可能です。
8u191 が既に最新バージョンではなくなっている場合、URL を変更しないとダウンロードできないため、適宜変更してください。
面倒であれば jdk をブラウザでダウンロードし、Dockerfile から COPY して / 直下に配置し、以下の curl をやめ COPY で配置した jdk を利用するようにしても問題ありません。

```shell:setup_jdk.sh
#!/bin/sh

curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
tar zxvf jdk-8u191-linux-x64.tar.gz
rm -f jdk-8u191-linux-x64.tar.gz

mkdir -p /usr/local/java
mv jdk1.8.0_191 /usr/local/java/jdk1.8.0_191
ln -s /usr/local/java/jdk1.8.0_191 /usr/local/java/jdk
```

```shell:setup_cassandra.sh
#!/bin/sh

curl -L -C - -O https://archive.apache.org/dist/cassandra/1.1.12/apache-cassandra-1.1.12-bin.tar.gz
tar -zxvf apache-cassandra-1.1.12-bin.tar.gz
rm apache-cassandra-1.1.12-bin.tar.gz

mkdir -p /usr/local/apache-cassandra
mv apache-cassandra-1.1.12 /usr/local/apache-cassandra/apache-cassandra-1.1.12
ln -s /usr/local/apache-cassandra/apache-cassandra-1.1.12 /usr/local/apache-cassandra/apache-cassandra

sed -i -e "s/Xss180k/Xss228k/g" /usr/local/apache-cassandra/apache-cassandra/conf/cassandra-env.sh
```

Solr のセットアップですが、以下のように curl でセットアップ資材を取得するようにしているため、solr_setup.zip を myserver からダウンロードできるように事前に準備しておきます。
これも面倒であれば solr_setup.zip をブラウザでダウンロードし、Dockerfile から COPY して / 直下に配置し、以下の curl をやめ COPY で配置した solr_setup.zip を利用するようにしても問題ありません。

```shell:setup_solr.sh
#!/bin/sh

curl -L -C - -O http://myserver/solr_setup.zip
unzip solr_setup.zip -d solr_setup
rm solr_setup.zip

cd solr_setup
chmod u+x ./setup.sh
./setup.sh jetty

mkdir -p /usr/local/solr
mv dist/jetty/jetty /usr/local/solr/jetty

cd ..
rm -rf solr_setup
```

ビルドします。

```shell
docker build -t mywls_base .
```

# Docker WebLogic 12.2.1.3

さて次は WebLogic 12.2.1.3 の Docker です。
先ほどの mywls_base をベースイメージとして利用します。

Dockerfile 以外にも以下のファイルを用意します。

* run_server.sh
* setup_wls.sh
* Dockerfile

まずは Dockerfile から。

```dockerfile:Dockerfile
FROM mywls_base

EXPOSE 22 5432 7001 9009 40608

# yum
RUN yum -y update \
 && yum -y upgrade && yum -y update \
 && yum install -y multitail ncurses-devel ncurses-static ncurses-term \
 && rm -rf /var/cache/yum/* \
 && yum clean all

# https://www.cyberz.org/blog/2014/10/31/weblogic-12c-very-slow-domain-creation/
ENV CONFIG_JVM_ARGS -Djava.security.egd=file:/dev/./urandom

# setup_wls
COPY setup_wls.sh /opt/setup_wls.sh
RUN chmod +x /opt/setup_wls.sh \
 && /opt/setup_wls.sh \
 && rm -f /opt/setup_wls.sh

COPY run_server.sh /opt/run_server.sh
RUN chmod +x /opt/run_server.sh \
 && sed -i -e "s/BUILD_TIME_HOSTNAME_FIXME/`hostname`/g" /opt/run_server.sh

RUN ln -s /opt/oracle/weblogic/user_projects/domains/mydomain/startWebLogic.sh /startWebLogic.sh \
 && ln -s /opt/oracle/weblogic/user_projects/domains/mydomain/bin/stopWebLogic.sh /stopWebLogic.sh \
 && ln -s /opt/oracle/weblogic/user_projects/domains/mydomain/startWebLogic.sh /opt/startWebLogic.sh \
 && ln -s /opt/oracle/weblogic/user_projects/domains/mydomain/bin/stopWebLogic.sh /opt/stopWebLogic.sh \
 && ln -s /opt/oracle/weblogic/user_projects/domains/mydomain/startWebLogic.sh /root/startWebLogic.sh \
 && ln -s /opt/oracle/weblogic/user_projects/domains/mydomain/bin/stopWebLogic.sh /root/stopWebLogic.sh \
 && ln -s /opt/run_server.sh /run_server.sh \
 && ln -s /opt/run_server.sh /root/run_server.sh

# COPY setDomainEnv.sh /opt/oracle/weblogic/user_projects/domains/mydomain/bin/setDomainEnv.sh
# COPY startWebLogic.sh /opt/oracle/weblogic/user_projects/domains/mydomain/bin/startWebLogic.sh
# COPY commExtEnv.sh /opt/oracle/oracle_common/common/bin/commExtEnv.sh
# COPY config.xml /opt/oracle/weblogic/user_projects/domains/mydomain/config/config.xml
# COPY PostgreSQL-8300-jdbc.xml /opt/oracle/weblogic/user_projects/domains/mydomain/config/jdbc/PostgreSQL-8300-jdbc.xml

RUN chmod +x /opt/oracle/weblogic/user_projects/domains/mydomain/bin/setDomainEnv.sh \
 && chmod +x /opt/oracle/weblogic/user_projects/domains/mydomain/bin/startWebLogic.sh \
 && chmod +x /opt/oracle/oracle_common/common/bin/commExtEnv.sh
 && updatedb

CMD ["/opt/run_server.sh"]
```

コメントアウトしている COPY 5 行は、後で使います。今はコメントアウトしたままで構いません。
コメントアウトした状態で、一度 docker build, docker run を行い、WebLogic の管理画面より intra-mart 用の設定を行います（-Xmx やトランザクションタイムアウト、データソースなどの設定）。
その設定がコメントアウトされているパスに反映されるため（設定反映前の /opt/oracle フォルダ、設定反映後の /opt/oracle フォルダの差分を WinMerge などのツールで取得することで判別します）、設定反映後の上記パスのファイルを取得後に、コメントアウトをやめ（コメントイン）、再度 docker build する流れになります。
こうすることで、intra-mart 用の設定がされた状態の WebLogic の Docker イメージを作成することができます。

続いて、WebLogic 12.2.1.3 のセットアップです。

以下のように curl でセットアップ資材を取得するようにしているため、資材を myserver からダウンロードできるように事前に準備しておきます。
これも面倒であればセットアップ資材をブラウザでダウンロードし、Dockerfile から COPY して /opt 直下に配置し、以下の curl をやめ COPY で配置したセットアップ資材を利用するようにしても問題ありません。

セットアップ資材は以下からダウンロードできます。

* WebLogic 12.2.1.3
 * https://www.oracle.com/technetwork/jp/middleware/weblogic/downloads/index.html

```setup_wls.sh
#!/bin/bash

echo "Oracle WebLogic 12.2.1.3.0 install script"

# create user
useradd weblogic
echo 'weblogic:password' | chpasswd

mkdir -p /opt/oracle
chown -R weblogic /opt/oracle
cd /opt/oracle

# download repository
echo "Downloading installer..."
WLS_REPOSITORY_BASE_URL="http://myserver"
curl -L -C - -O "${WLS_REPOSITORY_BASE_URL}/fmw_12.2.1.3.0_wls_quick_Disk1_1of1.zip"

echo "Unpacking installer..."
unzip -q fmw_12.2.1.3.0_wls_quick_Disk1_1of1.zip
rm -f *.zip *.txt *.htm

# install weblogic
echo "Installing WebLogic..."
su weblogic -c "java -jar fmw_12.2.1.3.0_wls_quick.jar -force -ignoreSysPrereqs ORACLE_HOME=/opt/oracle"
rm -f fmw_12.2.1.3.0_wls_quick.jar

# create domain
echo "Creating domain..."
su weblogic -c "mkdir -p /opt/oracle/weblogic/user_projects/domains/mydomain"

export WL_HOME=/opt/oracle/wlserver
export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/urandom
export PATH=$PATH:/opt/oracle/oracle_common/common/bin # wlst.sh へのパス
source /opt/oracle/oracle_common/common/bin/commEnv.sh

touch create_domain.py
echo '#!/usr/bin/python' >> create_domain.py
echo "import os, sys" >> create_domain.py
echo "selectTemplate('Basic WebLogic Server Domain')" >> create_domain.py
echo "loadTemplates()" >> create_domain.py
echo "cd('Servers/AdminServer')" >> create_domain.py
echo "set('Name', 'myserver')" >> create_domain.py
echo "set('ListenAddress', '')" >> create_domain.py
echo "set('ListenPort', 7001)" >> create_domain.py
echo "create('AdminServer', 'SSL')" >> create_domain.py
echo "cd('SSL/AdminServer')" >> create_domain.py
echo "set('Enabled', 'True')" >> create_domain.py
echo "set('ListenPort', 7002)" >> create_domain.py
echo "cd('/')" >> create_domain.py
echo "cd('Security/base_domain/User/weblogic')" >> create_domain.py
echo 'cmo.setPassword('\''password'\'')' >> create_domain.py
echo "setOption('OverwriteDomain', 'true')" >> create_domain.py
echo "writeDomain('/opt/oracle/weblogic/user_projects/domains/mydomain')" >> create_domain.py
echo "closeTemplate()" >> create_domain.py
echo "exit()" >> create_domain.py
wlst.sh create_domain.py
rm -f create_domain.py

# jdbc
ln -s /opt/jdbc/postgresql.jar /opt/oracle/wlserver/server/lib/postgresql.jar
ln -s /opt/jdbc/ngdbc.jar /opt/oracle/wlserver/server/lib/ngdbc.jar
```

WebLogic 12.2.1.3 をサイレントインストールしています。
細かい設定を変更したい場合上記シェルスクリプト内で出力している create_domain.py ファイルの内容を変更してください。

続いて、docker run 時に実行する、WebLogic の起動スクリプトです。
sshd, PostgreSQL, Cassandra, Solr も起動します。
ログファイルを二つ(myserver.log, startWebLogic.log)表示したいので、利用可能な場合 multitail を利用してログを出力します。
使えない環境の場合 tail を用いてログを出力します。

```shell:run_server.sh
#!/bin/bash

originalTerm="${TERM}"
if [ ${originalTerm} != "xterm" ]; then
    export TERM=xterm
fi

/etc/init.d/sshd start
service postgresql-9.6 restart
sleep 1

cassandra &
cd /usr/local/solr/jetty
./startup.sh &

# docker build 時のホスト(BUILD_TIME_HOSTNAME_FIXME) がスクリプトや設定ファイルに書き込まれているため、Docker イメージ実行時のホストに書き換える
host=`hostname`
sed -i -e "s/BUILD_TIME_HOSTNAME_FIXME/${host}/g" /opt/oracle/weblogic/user_projects/domains/mydomain/init-info/tokenValue.properties
sed -i -e "s/BUILD_TIME_HOSTNAME_FIXME/${host}/g" /opt/oracle/weblogic/user_projects/domains/mydomain/init-info/startscript.xml
sed -i -e "s/BUILD_TIME_HOSTNAME_FIXME/${host}/g" /opt/oracle/weblogic/user_projects/domains/mydomain/bin/stopWebLogic.sh
sed -i -e "s/BUILD_TIME_HOSTNAME_FIXME/${host}/g" /opt/oracle/weblogic/user_projects/domains/mydomain/bin/stopManagedWebLogic.sh

mkdir -p /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs
nohup /opt/oracle/weblogic/user_projects/domains/mydomain/startWebLogic.sh </dev/null >/opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/startWebLogic.log 2>&1 &

while [ ! -r /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/myserver.log ]
do
    sleep 1
done
while [ ! -r /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/startWebLogic.log ]
do
    sleep 1
done

if [ ${originalTerm} = "xterm" ]; then
    multitail -M 0 --follow-all --retry-all /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/myserver.log -I /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/startWebLogic.log
else
    tail -F /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/myserver.log /opt/oracle/weblogic/user_projects/domains/mydomain/servers/myserver/logs/startWebLogic.log
fi
```

ここまでできたら、一度 build し、実行します。

```shell
docker build -t mywls:12.2.1.3 .
docker run -it --rm -p 7001:7001 -p 7002:7002 -p 40608:40608 -p 5432:5432 -p 2222:22 -p 9009:9009 -p 7091:7091 mywls:12.2.1.3
```

実行後、コンテナに ssh でログインし、（root/password でログインできます）

```shell
zip -r oracle.zip /opt/oracle
```

を実行し、設定前の状態(oracle.zip)を保存します。保存後、[intra-mart Accel Platform セットアップガイド (WebLogic編)](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_wls/index.html) の設定を行います。

設定反映後、コンテナに ssh でログインし、

```shell
zip -r oracle2.zip /opt/oracle
```

を実行し、設定後の状態(oracle2.zip)を保存します。
oracle.zip と oracle2.zip の内容を WinMerge 等のツールを用いて比較します。
おそらく、次の 5 ファイルで差分が検出されるはずです（ログファイルも差分がでますがどうでもよい差分なので無視します）

* /opt/oracle/weblogic/user_projects/domains/mydomain/bin/setDomainEnv.sh
* /opt/oracle/weblogic/user_projects/domains/mydomain/bin/startWebLogic.sh
* /opt/oracle/oracle_common/common/bin/commExtEnv.sh
* /opt/oracle/weblogic/user_projects/domains/mydomain/config/config.xml
* /opt/oracle/weblogic/user_projects/domains/mydomain/config/jdbc/PostgreSQL-8300-jdbc.xml

上記 5 ファイルを取得後、Dockerfile の以下のようにコメントアウトされている個所のコメントを外します（コメントイン）。

```dockerfile
# COPY setDomainEnv.sh /opt/oracle/weblogic/user_projects/domains/mydomain/bin/setDomainEnv.sh
# COPY startWebLogic.sh /opt/oracle/weblogic/user_projects/domains/mydomain/bin/startWebLogic.sh
# COPY commExtEnv.sh /opt/oracle/oracle_common/common/bin/commExtEnv.sh
# COPY config.xml /opt/oracle/weblogic/user_projects/domains/mydomain/config/config.xml
# COPY PostgreSQL-8300-jdbc.xml /opt/oracle/weblogic/user_projects/domains/mydomain/config/jdbc/PostgreSQL-8300-jdbc.xml
```

↓

```dockerfile
COPY setDomainEnv.sh /opt/oracle/weblogic/user_projects/domains/mydomain/bin/setDomainEnv.sh
COPY startWebLogic.sh /opt/oracle/weblogic/user_projects/domains/mydomain/bin/startWebLogic.sh
COPY commExtEnv.sh /opt/oracle/oracle_common/common/bin/commExtEnv.sh
COPY config.xml /opt/oracle/weblogic/user_projects/domains/mydomain/config/config.xml
COPY PostgreSQL-8300-jdbc.xml /opt/oracle/weblogic/user_projects/domains/mydomain/config/jdbc/PostgreSQL-8300-jdbc.xml
```

変更後、もう一度 docker build します。

```shell
docker build -t mywls:12.2.1.3 .
```

コメントインした 5 つの COPY コマンドの直前のコマンド実行後の build image からのインクリメントビルド（一からビルドするのではなく、コメントインした COPY コマンドの行からのビルドになる）になるはずです。（そのため、build 時のホスト名も、コメントインした COPY コマンドを実行前と同じホスト名でビルドされます）

ひょっとすると、Dockerfile の先頭に

```dockerfile
ENV HOSTNAME weblogic
```

を入れて、docker build 時のホスト名を常に同じになるようにすると問題が発生しにくいかもしれません。

# 起動

```shell
docker run -it -p 7001:7001 -p 7002:7002 -p 40608:40608 -p 5432:5432 -p 2222:22 -p 9009:9009 -p 7091:7091 mywls:12.2.1.3
```

PostgreSQL, Solr, Cassandra もインストール済みのため、war をデプロイするだけですぐに検証を行うことができます。

# ssh

```shell
ssh -p 2222 root@localhost
```

docker run 時に -p 2222:22 とした場合、2222 が ssh のポートです。
root/password でログインできます。
localhost の部分は、docker run しているマシンの IP アドレスに置き換えてください。

# デプロイ

以下を参照して、war をデプロイしてください。
[intra-mart Accel Platform セットアップガイド (WebLogic編) warファイルのデプロイ](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_wls/texts/weblogic/deploy.html)

# URL

* WebLogic 管理画面
 * http://localhost:7001/console (weblogic/password)
* war デプロイ後の一般ユーザログイン画面
 * http://localhost:7001/imart/login
* war デプロイ後のシステムユーザログイン画面
 * http://localhost:7001/imart/system/login

localhost の部分は、docker run しているマシンの IP アドレスに置き換えてください。

というわけで簡単にですが WebLogic 12.2.1.3 intra-mart 用構成済みの Docker についての紹介でした。