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