B.5 Oracle Database資格証明のDockerシークレットの作成

MicroTxでは、トランザクション情報を追跡するための永続ストアとしてOracle Databaseの使用がサポートされます。YAMLファイルにOracle Database資格証明を指定する必要があります。MicroTxは、サービスのインストール後に資格証明を使用してデータベースへの接続を確立します。

Oracle Databaseを使用してMicroTxのトランザクション詳細を格納しない場合は、このステップをスキップします。

Autonomous Databaseインスタンスを使用している場合は、次のステップを開始する前に、必ずウォレットをダウンロードして接続文字列を書き留めてください。「Autonomous Databaseクライアント資格証明の取得」を参照してください。
Oracle Databaseログインの詳細を提供するDockerシークレットを作成するには:
  1. メモ帳などの任意のテキスト・エディタで、次の形式でOracle Database資格証明を入力します。サンプル値は、ご使用の環境に固有の値で置き換えてください。
    {
      "password": "enter_your_Database_password",
      "username": "enter_the_username_to_access_the_Database"
    }
  2. TXT形式でファイルを保存します。たとえば、database_secret.txtです。次のステップで指定する必要があるため、このファイルのパスと名前を書き留めます。
  3. Oracle Databaseのログイン詳細を使用してDockerシークレットを作成します。

    コマンド構文

    docker secret create <name_of_the_secret> </path_to_text_file>/<name_of_text_file

    サンプル・コマンド

    次のコマンドは、STORAGE_DB_CREDENTIALという名前のDockerシークレットを作成します。

    docker secret create STORAGE_DB_CREDENTIAL /database_secret.txt
  4. 次のコマンドを実行して、シークレットが作成されたことを確認します。
    docker secret ls

    サンプル・レスポンス

    
    ID         NAME                    DRIVER     CREATED          UPDATED
    ovn1x...   STORAGE_DB_CREDENTIAL              11 seconds ago   11 seconds ago

    読みやすくするために、レスポンスのサンプル値は...を使用して一部を省いています。このコマンドを環境で実行すると、完全な値が表示されます。

    作成したDockerシークレットの名前を書き留めます。この名前は後で入力する必要があります。

  5. 任意のテキスト・エディタでtmm-stack-compose.yamlファイルを開きます。このファイルはinstallation_directory/otmm-<version>/samples/dockerフォルダにあります。
  6. 作成したDockerシークレットの詳細を使用して、otmm-tcsサービスおよびsecretsセクションを更新します。次のコード・スニペットは、サンプル値を示しています。
    secrets:
      STORAGE_DB_CREDENTIAL:
        external: true
    services:
      otmm-tcs:
        image: "127.0.0.1:5000/tmm"
        ports:
          - "9000:9000"
        deploy:
          replicas: 1
        configs:
          - source: my_tcs_config
            target: /tcs.yaml
        # Create an environment variable that points to the Docker secret that you have created.
        entrypoint: ['/bin/sh', '-c', 'export STORAGE_DB_CREDENTIAL=$$(cat /run/secrets/STORAGE_DB_CREDENTIAL); /app/tcs' ]
        environment:
          - CONFIG_FILE=/tcs.yaml
        secrets:
          - STORAGE_DB_CREDENTIAL

    ここで、STORAGE_DB_CREDENTIALは、作成したDockerシークレットの名前です。entrypointを追加して、作成したDockerシークレットを指す環境変数を作成します。環境変数とDockerシークレットの名前は、サンプル・コード・スニペットでは同じです。

  7. データベース接続文字列を入力します。Autonomous Databaseインスタンスを使用している場合のみ、volumesパラメータにウォレットの詳細も指定する必要があります。Autonomous Databaseインスタンスの接続文字列の形式の詳細は、「Autonomous Databaseクライアント資格証明の取得」を参照してください。
    secrets:
      STORAGE_DB_CREDENTIAL:
        external: true
    services:
      otmm-tcs:
        image: "127.0.0.1:5000/tmm"
        ports:
          - "9000:9000"
        deploy:
          replicas: 1
        configs:
          - source: my_tcs_config
            target: /tcs.yaml
        volumes:
          - /<PATH_TO_DOWNLOADED_WALLET>/<WALLET_FOLDER_NAME>:/app/Wallet
        entrypoint: ['/bin/sh', '-c', 'export STORAGE_DB_CREDENTIAL=$$(cat /run/secrets/STORAGE_DB_CREDENTIAL); /app/tcs' ]
        environment:
          - CONFIG_FILE=/tcs.yaml
        secrets:
          - STORAGE_DB_CREDENTIAL
    storage:
        type: db
        #Allowed types - etcd/db/memory
        db:
          connectionString: tcps://adb.us-ashburn-1.oraclecloud.com:1522/bfeldfxbtjvtddi_brijeshadw1_medium.adb.oraclecloud.com?retry_count=20&retry_delay=3&wallet_location=/app/Wallet