6.3 Dockerfileを作成する
「図6-1 作成,変更するDockerイメージ」に示した「(A)TomcatがインストールされたDockerイメージ」をベースイメージとして,「(B)uCARTをインストールするDockerイメージ」のDockerfileを作成します。
「(B)uCARTをインストールするDockerイメージ」用のDockerfileの例を次に示します。下線部分については,使用する環境やベースイメージに合わせて変更してください。
# Base image [1.] FROM tomcat:9.0.60-jre11-openjdk # Install prerequired libraries [2.] <前提ライブラリのインストール> # Install uCART [3.] ADD <インストーラアーカイブのパス> /tmp RUN chmod +x /tmp/X64LIN/setup RUN /tmp/X64LIN/setup -f -k <形名> /tmp RUN rm -rf /tmp/X64LIN # Overwrite configuration files of Apache Tomcat [4.] RUN cp /opt/hitachi/ucart/template/tomcat/setenv.sh ${CATALINA_HOME}/bin/ RUN cp /opt/hitachi/ucart/template/tomcat9/server.xml ${CATALINA_HOME}/conf/ RUN cp /opt/hitachi/ucart/template/tomcat9/context.xml ${CATALINA_HOME}/conf/ RUN sed -i -e "s/^\(common\.loader=.*\)$/\1,\"\${com.cosminexus.appruntime.home.path}\/lib\/tomcat\/common\/*.jar\"/g" ${CATALINA_HOME}/conf/catalina.properties # Edit configuration file of uCART [5.] RUN echo monitor.rest.bindaddress=0.0.0.0 >> /opt/hitachi/ucart/conf/config.properties RUN echo snapshot.log.filepath=/ucart-snapshots/\${HOSTNAME}/snapshot >> /opt/hitachi/ucart/conf/config.properties # Expose HTTP port of uCART Process Monitor [6.] EXPOSE 28081 # Start Tomcat [7.] CMD [ "catalina.sh", "run" ]
- [説明]
-
-
ベースとなる「(A)TomcatがインストールされたDockerイメージ」を指定します。
Tomcatから提供されている公式のDockerイメージも使用できます。また,ユーザが作成したDockerイメージも使用できます。ユーザが作成したDockerイメージを使用する場合は,必ず環境変数CATALINA_HOMEがTomcatのインストール先の絶対パスを指すように設定してください。また,環境変数CATALINA_BASEは定義しないでください。
-
前提ライブラリをインストールします。uCARTに必要な前提ライブラリについては,製品のリリースノートを参照してください。
-
uCARTのインストーラをコンテナ上に展開してインストールを実行します。
-
uCARTの動作に必要な設定を定義します。各定義ファイルの詳細は,「12. 定義ファイル」を参照してください。
この定義例では,uCARTの動作に必要な設定があらかじめ記載されているTomcatの各種定義ファイルを,uCARTのテンプレートからコピーして上書きしています。なお,Tomcat 8.5を使用する場合は,templateディレクトリ直下のtomcat9ディレクトリをtomcat8.5ディレクトリに書き換えてください。
-
config.properties(uCART設定ファイル)に次の2つの設定を追記します。
monitor.rest.bindaddress=0.0.0.0
Tomcatプロセスモニタで使用するHTTP機能の受付ポートを,localhostだけでなくコンテナ外からもアクセスを可能にします。
snapshot.log.filepath=/ucart-snapshots/${HOSTNAME}/snapshot
異常検知時のスナップショットログ出力先を,Dockerホスト上の記憶域にマウントするパスに変更します。親ディレクトリ名に「${HOSTNAME}」を採用してコンテナごとに異なるディレクトリに出力されるようにすることで,同時刻に複数のコンテナから同じファイル名で出力することを防止できます。
-
uCARTのTomcatプロセスモニタで使用するHTTP機能の受付ポートである28081番ポートへ,コンテナ外からのアクセスを可能にします。
-
デフォルトの実行コマンドとして,Tomcatの起動コマンドを指定します。「"catalina.sh", "run"」を指定してください。
-