Hitachi

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


3.4.4 TP1-Bridgeコンテナイメージの作成(通常版かつTP1-Bridge限定)

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

このコンテナイメージは通常版の場合で、TP1-Bridgeを使用するときだけ作成します。

〈この項の構成〉

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

uCosminexus Application Runtime with Java for Spring Bootの修正パッチがあるかどうかを確認して、使用するHitachi Microservices Platform - Bridge Option for OpenTP1が提供するTP1-Bridge用Containerfileのテンプレートを選択してください。選択したテンプレートに、次の修正をしてください。

uCosminexus Application Runtime with Java for Spring Bootの修正パッチがある場合のContainerfileのテンプレートの例を、次に示します。

FROM registry.access.redhat.com/ubi8/ubi-minimal:8.8-860 AS builder
RUN microdnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        ncompress \
        ncurses \
        tar \
        cpio \
        gzip
WORKDIR /tmp
RUN mkdir ./X64LIN
COPY ucars/X64LIN ./X64LIN
RUN chmod +x ./X64LIN/setup
RUN ./X64LIN/setup -f -c HL0T ./
RUN mkdir patch
WORKDIR patch
COPY PACK_TAR.Z .
RUN tar xzvf PACK_TAR.Z && ./UPDATE -f; export RET=$?; if [ ${RET} -ne 0 -a ${RET} -ne 1 ]; then exit ${RET}; fi
 
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.8-860 AS ucars
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-7.61.1 \
        jq-1.6 \
        glibc-2.28 \
    && dnf clean all \
    && rm -rf /var/cache/dnf/*
ENV PATH=/opt/Cosminexus/jdk/bin:$PATH
COPY ./DigiCertGlobalRootG2.crt /opt/Cosminexus/jdk/jre/lib/security/
RUN keytool -import -alias AzureCACert -trustcacerts \
    -file /opt/Cosminexus/jdk/jre/lib/security/DigiCertGlobalRootG2.crt \
    -keystore /opt/Cosminexus/jdk/jre/lib/security/cacerts \
    -storepass changeit \
    -noprompt
USER 1001:0
 
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.8-860 AS ucars_eads
RUN microdnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        dnf \
    && dnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        --allowerasing \
        curl-7.61.1 \
        jq-1.6 \
        glibc-2.28 \
    && dnf clean all \
    && rm -rf /var/cache/dnf/*
 
RUN microdnf install \
        -y \
        --setopt=install_weak_deps=0 \
        --nodocs \
        ncompress \
        ncurses \
        tar \
        cpio \
        gzip
WORKDIR /tmp
RUN mkdir ./X64LIN
COPY /X64LIN ./X64LIN
RUN chmod +x ./X64LIN/setup
RUN ./X64LIN/setup -f -c HC13 ./
RUN mkdir patch
WORKDIR patch
COPY PACK_TAR.Z .
RUN tar xzvf PACK_TAR.Z && ./UPDATE -f; export RET=$?; if [ ${RET} -ne 0 -a ${RET} -ne 1 ]; then exit ${RET}; fi
 
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.8-860
RUN mkdir -p /deployments/eads-lib \
    && mkdir -p /deployments/eads-log \
    && chown 1001:0 /deployments/eads-log \
    && chmod 770 /deployments/eads-log \
    && mkdir -p /deployments/tp1-log \
    && chown 1001:0 /deployments/tp1-log \
    && chmod 770 /deployments/tp1-log
ENV LOADER_PATH=/deployments/eads-lib
ENV PATH=/opt/Cosminexus/jdk/bin:$PATH
COPY --from=ucars /opt /opt
COPY --from=ucars /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-7.61.1 \
        jq-1.6 \
        glibc-2.28 \
    && dnf clean all \
    && rm -rf /var/cache/dnf/*
WORKDIR /deployments
COPY --from=ucars_eads --chown=1001:0 --chmod=0440 /opt/hitachi/xeads/javaclient/lib/ /deployments/eads-lib
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 ./tp1-bridge-V.R.S.jar /deployments/
CMD /opt/hitachi/ucars/bin/starter.sh java ${HMPPCTO_JAVA_OPTIONS} -jar /deployments/tp1-bridge-V.R.S.jar
注※

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

(2) Containerfileと資材の配置

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

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

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

作成・提供元

備考

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

ユーザ

Containerfile

ユーザ

tp1-bridgeV.R.S.jar

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

ユーザ

3.3.4 JARファイルのビルド(通常版かつTP1-Bridge限定)」で作成したもの

health_check.sh

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

日立

wait_transactions.sh

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

日立

X64LIN

(Hitachi Elastic Application Data Store Client for Javaのインストーラ)

日立

HMP-PCTOに同梱されているHitachi Elastic Application Data Store Client for JavaのインストーラのX64LINディレクトリをコピーしてください。

PACK_TAR.Z

(Hitachi Elastic Application Data Store Client for Javaの修正パッチ)

日立

HMP-PCTOにHitachi Elastic Application Data Store Client for Javaの修正パッチが同梱されている場合だけ格納してください。

DigiCertGlobalRootG2.crt

(DigiCertGlobalRootG2 CA証明書)

ユーザ

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

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

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

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

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

cd <コンテナイメージビルド作業ディレクトリ>/
docker△build△-f△./Containerfile△-t△<コンテナレジストリ>/[<namespace>/]<TP1-Bridgeコンテナイメージのユーザ任意のイメージ名>:<ユーザ任意のタグ名>△.

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

<実行例>

cd build/
docker build -f ./Containerfile -t myregistry.example.com/myproject/tp1-bridge:latest .

この例では、TP1-Bridgeコンテナイメージのイメージ名・タグ名を「tp1-bridge:latest」としています。

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

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

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