Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


3.4.3 Mediatorコンテナイメージの作成(通常版限定)

Mediatorコンテナイメージの作成方法について説明します。

このコンテナイメージは通常版の場合だけ作成します。トライアル版の場合は提供ファイルに含まれるコンテナイメージを使用します。

〈この項の構成〉

(1) Containerfileのテンプレートの修正

HMP-PCTOが提供するContainerfileのテンプレートについて、次の修正をしてください。

uCosminexus Application Runtime with Java for Spring Bootの修正パッチがない場合のContainerfileのテンプレートの内容を次に記載しています。Containerfileのテンプレートに対する修正内容は、uCosminexus Application Runtime with Java for Spring Bootの修正パッチがない場合と修正パッチがある場合のどちらも同じです。

FROM registry.access.redhat.com/ubi9/ubi-minimal:9.5-1742914212 AS builder
RUN microdnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        alsa-lib \
        cups-libs \
        findutils \
        lksctp-tools \
        nss \
        ncurses \
        tar \
        cpio \
        gzip
WORKDIR /tmp
RUN mkdir ./X64LIN
COPY X64LIN ./X64LIN
RUN chmod +x ./X64LIN/setup
RUN ./X64LIN/setup -f -c HL0S ./
 
FROM registry.access.redhat.com/ubi9/ubi-minimal:9.5-1742914212
COPY --from=builder /opt /opt
COPY --from=builder /etc/.java /etc/.java
RUN microdnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        dnf \
    && dnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        --allowerasing \
        curl-minimal \
        jq \
        glibc \
        <uCosminexus Application Runtime with Java for Spring Bootの前提RPMパッケージ>※1     …1
        :
    && dnf clean all \
    && rm -rf /var/cache/dnf/*
ENV PATH=/opt/Cosminexus/jdk17/bin:$PATH
 
RUN chgrp -R 1001 /opt/hitachi/ucars     …4
 
COPY ./DigiCertGlobalRootG2.crt /opt/Cosminexus/jdk17/lib/security/※1     …2
RUN keytool -import -alias AzureCACert -trustcacerts \※1
    -file /opt/Cosminexus/jdk17/lib/security/DigiCertGlobalRootG2.crt \※1
    -keystore /opt/Cosminexus/jdk17/lib/security/cacerts \※1
    -storepass changeit \※1
    -noprompt※1
COPY ./gtsrootr1.pem /opt/Cosminexus/jdk17/lib/security/     …3
COPY ./gtsrootr2.pem /opt/Cosminexus/jdk17/lib/security/
COPY ./gtsrootr3.pem /opt/Cosminexus/jdk17/lib/security/
COPY ./gtsrootr4.pem /opt/Cosminexus/jdk17/lib/security/
RUN keytool -import -alias gtsrootr1 -trustcacerts \
    -file /opt/Cosminexus/jdk17/lib/security/gtsrootr1.pem \
    -keystore /opt/Cosminexus/jdk17/lib/security/cacerts \
    -storepass changeit \
    -noprompt
RUN keytool -import -alias gtsrootr2 -trustcacerts \
    -file /opt/Cosminexus/jdk17/lib/security/gtsrootr2.pem \
    -keystore /opt/Cosminexus/jdk17/lib/security/cacerts \
    -storepass changeit \
    -noprompt
RUN keytool -import -alias gtsrootr3 -trustcacerts \
    -file /opt/Cosminexus/jdk17/lib/security/gtsrootr3.pem \
    -keystore /opt/Cosminexus/jdk17/lib/security/cacerts \
    -storepass changeit \
    -noprompt
RUN keytool -import -alias gtsrootr4 -trustcacerts \
    -file /opt/Cosminexus/jdk17/lib/security/gtsrootr4.pem \
    -keystore /opt/Cosminexus/jdk17/lib/security/cacerts \
    -storepass changeit \
    -noprompt
USER 1001:0
WORKDIR /deployments
COPY --chown=1001:0 --chmod=0550 ./health_check.sh /deployments/
COPY --chown=1001:0 --chmod=0550 ./wait_transactions.sh /deployments/
COPY --chown=1001:0 --chmod=0440 ./libhmppcto-mediator-V.R.S※2.so /deployments/
COPY --chown=1001:0 --chmod=0440 ./mediator-V.R.S※2.jar /deployments/
CMD /opt/hitachi/ucars/bin/starter.sh java ${HMPPCTO_JAVA_OPTIONS} -jar /deployments/mediator-V.R.S※2.jar
注※1

オレンジ色の背景で示す個所以外の内容は、HMP-PCTOが提供するContainerfileのテンプレートの実際の内容と多少異なる場合があります。

注※2

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

(2) Containerfileと資材の配置

次の表に示すとおり、Containerfileと資材をコンテナイメージビルド環境に配置してください。

表3‒8 Containerfileと資材の配置構成

ファイル/ディレクトリ構成

作成・提供元

備考

<コンテナイメージビルド作業ディレクトリ>/

ユーザ

Containerfile

ユーザ

■uCosminexus Application Runtime with Java for Spring Bootの修正パッチがない場合

HMP-PCTOの提供ファイル「templates/container-files/<RHELバージョン>/mediator/normal/Containerfile」を使用してください。

■uCosminexus Application Runtime with Java for Spring Bootの修正パッチがある場合

HMP-PCTOの提供ファイル「templates/container-files/<RHELバージョン>/mediator/patch/Containerfile」を使用してください。

mediator-V.R.S.jar

(HMP-PCTOのMediatorアプリケーションのJARファイル)

ユーザ

3.2.4 JARファイルのビルド(通常版限定)」で作成したもの

libhmppcto-mediator-V.R.S.so

(HMP-PCTOのMediatorアプリケーションのダイレクトIO用ライブラリファイル)

日立

health_check.sh

(HMP-PCTOのトランザクションヘルスチェックスクリプト)

日立

wait_transactions.sh

(HMP-PCTOの未決着トランザクション待機スクリプト)

日立

X64LIN

(uCosminexus Application Runtime with Java for Spring Bootのインストーラ)

日立

uCosminexus Application Runtime with Java for Spring BootのインストールCD-ROMに格納されているX64LINディレクトリをコピーしてください。

PACK_TAR.Z

(uCosminexus Application Runtime with Java for Spring Bootの修正パッチ)

日立

uCosminexus Application Runtime with Java for Spring Bootの修正パッチを適用する場合だけ格納してください。

DigiCertGlobalRootG2.crt

(DigiCertGlobalRootG2 CA証明書)

ユーザ

分散トレース収集サービスにAzure Monitor Application Insightsを使用する場合だけ格納してください。

GTS Root R1.pem

GTS Root R2.pem

GTS Root R3.pem

GTS Root R4.pem

(GTS Root R1、GTS Root R2、GTS Root R3、GTS Root R4証明書)

ユーザ

分散トレース収集サービスにGoogle Cloud PlatformのCloud Traceを使用する場合だけ格納してください。

(凡例)−:該当しません。

(3) コンテナイメージのビルド

Containerfileを使用して、コンテナイメージをビルドします。

Mediatorコンテナイメージのビルドのコマンドを次に示します。

cd <コンテナイメージビルド作業ディレクトリ>/
docker△build△-f△./Containerfile△-t△<コンテナレジストリ>/[<namespace>/]mediator:<HMP-PCTOバージョン(V.R.S)>△.

(凡例)△:半角スペース1文字

<実行例>

cd build/
docker build -f ./Containerfile -t myregistry.example.com/myproject/mediator:V.R.S .

この例では、HMP-PCTOバージョンを「V.R.S」としています。

注※

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

(4) コンテナイメージの登録

ビルドしたMediatorコンテナイメージを、Kubernetesクラスタで使用するコンテナレジストリにdocker pushコマンドなどで登録してください。

インターネット接続のない閉塞環境の場合は、ローカルのリポジトリ・レジストリなどを使用したり、コンテナイメージビルド環境でエクスポートしたコンテナイメージをKubernetesクラスタの各ワーカーノードにインポートしたりするなどの方法で対応してください。