1. manymanyuni

    Posted

    manymanyuni
Changes in title
+WebSphere 8.5.5.14 FullProfile の Docker を作成する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,604 @@
+# 前置き
+
+WebSphere 8.5.5.14 FullProfile の Docker を作成していきます。
+intra-mart の検証用として利用したいので、intra-mart が要求する設定をあらかじめ実施します](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_was/index.html)
+これによって、IBM 公式の Docker イメージと異なり、docker run 後何も考えずにすぐに検証用として利用できるような WebSphere の環境が作れるようになります。
+
+# 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 6600 8080 8983 9009
+
+# 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
+
+CMD ["/opt/IBM/InstallationManager/eclipse/tools/imcl", "-c"]
+```
+
+```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 mywas_base .
+```
+
+# Docker WebSphere 8.5.5.14 FullProfile
+
+さて次は WebSphere 8.5.5.14 FullProfile の Docker です。
+先ほどの mywas_base をベースイメージとして利用します。
+
+Dockerfile 以外にも以下のファイルを用意します。
+
+* run_server.sh
+* setup_was.sh
+* startServer.sh
+* stopServer.sh
+* was85.rsp
+* Dockerfile
+
+まずは Dockerfile から。
+
+```dockerfile:Dockerfile
+FROM mywas_base
+
+EXPOSE 22 5432 9009 9060 9080 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
+
+# setup_was
+COPY setup_was.sh /opt/setup_was.sh
+COPY was85.rsp /opt/was85.rsp
+RUN chmod +x /opt/setup_was.sh \
+ && /opt/setup_was.sh \
+ && rm -f /opt/setup_was.sh
+
+COPY run_server.sh /opt/run_server.sh
+COPY startServer.sh /opt/startServer.sh
+COPY stopServer.sh /opt/stopServer.sh
+RUN chmod +x /opt/run_server.sh \
+ && chmod +x /opt/startServer.sh \
+ && chmod +x /opt/stopServer.sh \
+ && ln -s /opt/startServer.sh /startServer.sh \
+ && ln -s /opt/stopServer.sh /stopServer.sh \
+ && ln -s /opt/startServer.sh /root/startServer.sh \
+ && ln -s /opt/stopServer.sh /root/stopServer.sh \
+ && ln -s /opt/run_server.sh /run_server.sh \
+ && ln -s /opt/run_server.sh /root/run_server.sh
+
+# COPY cell_node_resources.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/resources.xml
+# COPY cell_node_server.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/server.xml
+# COPY cell_security.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/security.xml
+
+RUN updatedb
+
+CMD ["/opt/run_server.sh"]
+```
+
+コメントアウトしている COPY 3 行は、後で使います。今はコメントアウトしたままで構いません。
+コメントアウトした状態で、一度 docker build, docker run を行い、WebSphere の管理画面より intra-mart 用の設定を行います(-Xmx やトランザクションタイムアウト、データソースなどの設定)。
+その設定がコメントアウトされているパスに反映されるため(設定反映前の /opt/IBM/WebSphere フォルダ、設定反映後の /opt/IBM/WebSphere フォルダの差分を WinMerge などのツールで取得することで判別します)、設定反映後の上記パスのファイルを取得後に、コメントアウトをやめ(コメントイン)、再度 docker build する流れになります。
+こうすることで、intra-mart 用の設定がされた状態の WebSphere の Docker イメージを作成することができます。
+
+続いて、WebSphere 8.5.5.14 FullProfile のセットアップです。
+
+以下のように curl でセットアップ資材を取得するようにしているため、資材を myserver からダウンロードできるように事前に準備しておきます。
+これも面倒であればセットアップ資材をブラウザでダウンロードし、Dockerfile から COPY して /opt 直下に配置し、以下の curl をやめ COPY で配置したセットアップ資材を利用するようにしても問題ありません。
+
+セットアップ資材は以下からダウンロードできます。
+
+* Installation Manager
+ * https://www-01.ibm.com/support/docview.wss?uid=swg27036453
+* WebSphere 8.5.5.0
+ * https://www-01.ibm.com/support/docview.wss?uid=swg24034969
+* WebSphere Fix Pack 8.5.5.15
+ * https://www-01.ibm.com/support/docview.wss?uid=swg27009661
+* Java
+ * https://www-01.ibm.com/support/docview.wss?uid=ibm10726035
+
+```setup_was.sh
+#!/bin/bash
+
+echo "IBM WAS install script"
+
+cd /opt
+
+# download repository
+echo "Downloading repository..."
+WAS_REPOSITORY_BASE_URL="http://myserver"
+curl -L -C - -o im.zip "${WAS_REPOSITORY_BASE_URL}/agent.installer.linux.gtk.x86_64_1.8.8000.20171130_1105.zip"
+curl -L -C - -o was1.zip "${WAS_REPOSITORY_BASE_URL}/was.repo.8550.developers.ilan_part1.zip"
+curl -L -C - -o was2.zip "${WAS_REPOSITORY_BASE_URL}/was.repo.8550.developers.ilan_part2.zip"
+curl -L -C - -o was3.zip "${WAS_REPOSITORY_BASE_URL}/was.repo.8550.developers.ilan_part3.zip"
+curl -L -C - -o java1.zip "${WAS_REPOSITORY_BASE_URL}/8.0.5.17-WS-IBMWASJAVA-part1.zip"
+curl -L -C - -o java2.zip "${WAS_REPOSITORY_BASE_URL}/8.0.5.17-WS-IBMWASJAVA-part2.zip"
+curl -L -C - -o wasfp_1.zip "${WAS_REPOSITORY_BASE_URL}/8.5.5-WS-WAS-FP014-part1.zip"
+curl -L -C - -o wasfp_2.zip "${WAS_REPOSITORY_BASE_URL}/8.5.5-WS-WAS-FP014-part2.zip"
+curl -L -C - -o wasfp_3.zip "${WAS_REPOSITORY_BASE_URL}/8.5.5-WS-WAS-FP014-part3.zip"
+
+# im
+echo "Installing IBM Installation Manager..."
+mkdir iminstall
+unzip -q im.zip -d iminstall
+
+cd iminstall
+ln -s jre_7.0.100010.20170822_1251/ jre
+./installc --launcher.ini silent-install.ini -acceptLicense
+
+cd /opt
+
+rm -rf iminstall
+rm -f im.zip
+
+# was base files
+mkdir was8550repo
+echo "Unpacking base files..."
+unzip -q was1.zip -d was8550repo
+unzip -q was2.zip -d was8550repo
+unzip -q was3.zip -d was8550repo
+rm -f was1.zip was2.zip was3.zip
+
+# jdk files
+mkdir javarepo
+echo "Unpacking java files..."
+unzip -q java1.zip -d javarepo
+unzip -q java2.zip -d javarepo
+rm -f java1.zip java2.zip
+
+# was fp
+mkdir wasfprepo
+echo "Unpacking fp files..."
+unzip -q wasfp_1.zip -d wasfprepo
+unzip -q wasfp_2.zip -d wasfprepo
+unzip -q wasfp_3.zip -d wasfprepo
+rm -f wasfp_1.zip wasfp_2.zip wasfp_3.zip
+
+echo "Installing Java and WAS..."
+/opt/IBM/InstallationManager/eclipse/tools/imcl -acceptLicense -showProgress input /opt/was85.rsp
+rm -f was85.rsp
+
+echo "Removing repos..."
+rm -rf was8550repo javarepo wasfprepo
+
+echo "Creating default profile..."
+/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default
+```
+
+WebSphere 8.5.5.0, WebSphere Fix Pack 8.5.5.15, IBM WebSphere Java SDKs 8.0.5.17 をサイレントインストールしています。
+
+サイレントインストールに必要なレスポンスファイルです。
+WebSphere 8.5.5.14 以外のバージョンをインストールする場合、setup_was.sh スクリプト以外にもこのレスポンスファイルも編集する必要があります。
+
+```xml:was85.rsp
+<?xml version="1.0" encoding="UTF-8"?>
+
+<agent-input clean="true" temporary="true">
+
+<server>
+ <repository location='/opt/was8550repo'/>
+ <repository location='/opt/wasfprepo'/>
+ <repository location='/opt/javarepo'/>
+</server>
+
+<install>
+ <offering id='com.ibm.websphere.DEVELOPERSILAN.v85'
+ profile='IBM WebSphere Application Server for Developers (ILAN) 8.5.5.14'/>
+
+ <offering id='com.ibm.websphere.IBMJAVA.v80'
+ profile='IBM WebSphere Application Server V8.5' installFixes='none'/>
+</install>
+
+<profile id='IBM WebSphere Application Server for Developers (ILAN) 8.5.5.14' installLocation='/opt/IBM/WebSphere/AppServer'>
+ <data key='eclipseLocation' value='/opt/IBM/WebSphere/AppServer'/>
+ <data key='user.import.profile' value='false'/>
+ <data key='cic.selector.nl' value='ja'/>
+ <data key='user.wasjava' value='java8'/>
+</profile>
+
+<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/IBM/IMShared'/>
+<preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts' value='false'/>
+<preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
+<preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
+<preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
+<preference name='offering.service.repositories.areUsed' value='true'/>
+<preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
+<preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication' value='false'/>
+<preference name='http.ntlm.auth.kind' value='NTLM'/>
+<preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
+<preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
+<preference name='PassportAdvantageIsEnabled' value='false'/>
+<preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
+<preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
+
+</agent-input>
+```
+
+続いて、docker run 時に実行する、WebSphere の起動スクリプトです。
+sshd, PostgreSQL, Cassandra, Solr も起動します。
+ログファイルを二つ(SystemOut.log, SystemErr.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
+
+cassandra &
+cd /usr/local/solr/jetty
+./startup.sh &
+
+/opt/IBM/WebSphere/AppServer/bin/startServer.sh server1 &
+while [ ! -r /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemOut.log ]
+do
+ sleep 1
+done
+while [ ! -r /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemErr.log ]
+do
+ sleep 1
+done
+
+if [ ${originalTerm} = "xterm" ]; then
+ multitail -M 0 --follow-all --retry-all /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemOut.log -I /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemErr.log
+else
+ tail -F /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemOut.log /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemErr.log
+fi
+```
+
+```shell:startServer.sh
+#!/bin/sh
+
+cd /opt/IBM/WebSphere/AppServer/bin
+./startServer.sh server1
+```
+
+```shell:stopServer.sh
+#!/bin/sh
+
+cd /opt/IBM/WebSphere/AppServer/bin
+./stopServer.sh server1
+```
+
+ここまでできたら、一度 build し、実行します。
+
+```shell
+docker build -t mywas:8.5.5.14 .
+docker run -it --rm -p 9060:9060 -p 9080:9080 -p 40608:40608 -p 5432:5432 -p 2222:22 -p 9009:9009 mywas:8.5.5.14
+```
+
+実行後、コンテナに ssh でログインし、(root/password でログインできます)
+
+```shell
+zip -r WebSphere.zip /opt/IBM/WebSphere
+```
+
+を実行し、設定前の状態(WebSphere.zip)を保存します。保存後、[
+intra-mart Accel Platform セットアップガイド (WebSphere編)](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_was/) の設定を行います。
+
+設定反映後、コンテナに ssh でログインし、
+
+```shell
+zip -r WebSphere2.zip /opt/IBM/WebSphere
+```
+
+を実行し、設定後の状態(WebSphere2.zip)を保存します。
+WebSphere.zip と WebSphere2.zip の内容を WinMerge 等のツールを用いて比較します。
+おそらく、次の 3 ファイルで差分が検出されるはずです(ログファイルも差分がでますがどうでもよい差分なので無視します)
+
+* /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/resources.xml
+* /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/server.xml
+* /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/security.xml
+
+パス中の 32f0c14c1a1eNode01Cell や 32f0c14c1a1eNode01 の部分は、docker build 時のホスト名に影響すると思われるため、docker build する度に違う値になっている可能性が高いです。
+(また上記 3 ファイル中にも docker build 時のホスト名の影響を受ける設定が入っているはずです)
+
+上記 3 ファイルを取得後、
+
+resources.xml -> cell_node_resources.xml
+server.xml -> cell_node_server.xml
+security.xml -> cell_security.xml
+
+とファイル名を変え、Dockerfile の以下のようにコメントアウトされている個所のコメントを外します(コメントイン)。
+
+```dockerfile
+# COPY cell_node_resources.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/resources.xml
+# COPY cell_node_server.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/server.xml
+# COPY cell_security.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/security.xml
+```
+
+
+
+```dockerfile
+COPY cell_node_resources.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/resources.xml
+COPY cell_node_server.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/server.xml
+COPY cell_security.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/security.xml
+```
+
+変更後、もう一度 docker build します。
+
+```shell
+docker build -t mywas:8.5.5.14 .
+```
+
+コメントインした 3 つの COPY コマンドの直前のコマンド実行後の build image からのインクリメントビルド(一からビルドするのではなく、コメントインした COPY コマンドの行からのビルドになる)になるはずです。(そのため、build 時のホスト名も、コメントインした COPY コマンドを実行前と同じホスト名でビルドされます)
+
+中間ビルドイメージを全部削除して一から build しなおしてしまうと、
+
+```dockerfile
+COPY cell_node_resources.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/resources.xml
+COPY cell_node_server.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/nodes/32f0c14c1a1eNode01/servers/server1/server.xml
+COPY cell_security.xml /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/32f0c14c1a1eNode01Cell/security.xml
+```
+
+このコマンドのパス名が変わってしまう可能性があるため、中間ビルドイメージを消したりせず、普通にインクリメントビルドした方が無難だと思います。
+
+ひょっとすると、Dockerfile の先頭に
+
+```dockerfile
+ENV HOSTNAME websphere
+```
+
+を入れて、docker build 時のホスト名を常に同じになるようにすると問題が発生しにくいかもしれません。
+
+# 起動
+
+```shell
+docker run -it -p 9060:9060 -p 9080:9080 -p 40608:40608 -p 5432:5432 -p 2222:22 -p 9009:9009 mywas:8.5.5.14
+```
+
+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 セットアップガイド (WebSphere編) warファイルのデプロイ](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_was/texts/websphere/deploy.html)
+war デプロイ後、以下のクラスローダの設定を行ってください。
+[intra-mart Accel Platform セットアップガイド (WebSphere編) クラスローダーの設定](https://www.intra-mart.jp/document/library/iap/public/setup/iap_setup_guide_was/texts/websphere/classloader.html)
+
+# URL
+
+* WebSphere 管理画面
+ * http://localhost:9060/admin
+* war デプロイ後の一般ユーザログイン画面
+ * http://localhost:9080/imart/login
+* war デプロイ後のシステムユーザログイン画面
+ * http://localhost:9080/imart/system/login
+
+localhost の部分は、docker run しているマシンの IP アドレスに置き換えてください。
+
+
+
+というわけで簡単にですが WebSphere 8.5.5.14 FullProfile intra-mart 用構成済みの Docker についての紹介でした。