Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

UCIDM パッケージ アップデート時の移行作業

UCIDM パッケージ のアップデート時に必要となる作業について記載しています。

1.8.0 (2025-10-14) から 1.9.0 (2026-03-11) へアップデートするときに必要となる作業

MongoDB コンテナイメージの移行

  1. 既存データをバックアップする
$ docker compose exec mongo sh -c 'mongodump \
  --authenticationDatabase=admin \
  --port=$MONGODB_PORT_NUMBER \
  --username="$MONGODB_ROOT_USER" \
  --password="$MONGODB_ROOT_PASSWORD" \
  --db=ucidm \
  --archive' > $(date +%Y%m%d)-mongodb.dump
  1. compose サービスを停止する
$ docker compose down
  1. compose.yml の mongo サービスの設定を変更する

次の diff を参考に設定を変更します。移行前とデータが永続化される bind mounts volumes ディレクトリの場所が変更になっています。

$ vi compose.yml
   mongo:
     container_name: mongo
-    image: docker.io/bitnamilegacy/mongodb:8.0.3
+    image: docker.io/osstech/mongodb:8.2.4
     logging: *default-logging
     volumes:
       - type: bind
-        source: ./mongodb
-        target: /bitnami/mongodb
+        source: ./mongodb/db
+        target: /data/db
         bind:
           create_host_path: false
     environment:
@@ -302,12 +302,9 @@ services:
       MONGODB_ROOT_USER: "${MONGO_USER}"
       MONGODB_ROOT_PASSWORD: "${MONGO_PASSWORD}"
       MONGODB_PORT_NUMBER: "27017"
-      MONGODB_INITIAL_PRIMARY_PORT_NUMBER: "27017"
       MONGODB_ADVERTISED_HOSTNAME: "${MONGO_HOSTNAME}"
       MONGODB_REPLICA_SET_NAME: "${MONGO_REPLICA_SET}"
-      MONGODB_REPLICA_SET_MODE: "primary"
       MONGODB_REPLICA_SET_KEY: "my/replication/common/key123"
-      MONGODB_SYSTEM_LOG_VERBOSITY: 0
     hostname: "${MONGO_HOSTNAME}"

compose.yml の変更後に構文チェックをしてエラーが発生しないことを確認します。

$ docker compose config 1>/dev/null
$ echo $?
0
  1. bind mounts volumes ディレクトリを作成する
$ rootlesskit mkdir -p mongodb/db/.mongodb
$ rootlesskit chown -R 999:999 mongodb/db
  1. 移行後の mongodb コンテナイメージで mongo サービスを起動する
$ docker compose up -V mongo

mongo サービスの初回起動時のみ、次のようなログを確認できます。

[HACK] start MongoDB for INITIALIZATION: --bind_ip 127.0.0.1 --port 27017 --tlsMode disabled --logpath /proc/1/fd/1 --logappend --pidfilepath /tmp/docker-entrypoint-temp-mongod.pid --fork

[HACK] original arguments for MongoDB: --bind_ip 127.0.0.1 --port 27017 --tlsMode disabled --logpath /proc/1/fd/1 --logappend --pidfilepath /tmp/docker-entrypoint-temp-mongod.pid --shutdown

[HACK] start MongoDB for initiating Replica Set: --fork --syslog --auth --bind_ip_all --port 27017 --replSet myrs --keyFile /keyfile

[HACK] start MongoDB for PRODUCTION USE: --auth --bind_ip_all --port 27017 --replSet myrs --keyFile /keyfile
  1. バックアップしたデータをリストアする
$ docker compose exec --interactive --no-TTY mongo bash -c 'mongorestore \
  --authenticationDatabase=admin \
  --port=$MONGODB_PORT_NUMBER \
  --username="$MONGODB_ROOT_USER" \
  --password="$MONGODB_ROOT_PASSWORD" \
  --nsInclude="ucidm.*" \
  --archive' < ./YYYYMMDD-mongodb.dump

データをリストアした後にコレクションのインデックスを設定します。インデックス作成がエラーになっていないかを確認します。エラーになった場合は別途インデックスの作成作業が必要になります。

  1. compose サービスを再起動する
$ docker compose down
$ docker compose up -d

サービス起動後、ID 連携管理画面でログインして既存データを確認します。

  1. 不要なデータを削除する

データ移行を正常に行えたことを確認した後、移行前のデータとバックアップデータを削除します。

$ rootlesskit rm -rf mongodb/data/
$ rm -f YYYYMMDD-mongodb.dump

Agent サービスの環境変数 PROTOCOL の削除

compose サービスを停止した状態で compose.yml の Agent サービスの設定から PROTOCOL の環境変数を削除します。

次の diff を参考にしてください。

$ vi compose.yml
   agent-ldap:
     ...
     environment:
       TZ: "${TZ}"
       #SSL_CERT_FILE: "${SSL_CERT_FILE}"
-      PROTOCOL: "syncrepl"
       PAGE_KEY_PATH: "${AGENT_PAGE_KEY_PATH}"
       RELOAD_INTERVAL: "${AGENT_RELOAD_INTERVAL}"
       API_HOST: "${API_HOST}"

1.7.0 (2025-05-02) から 1.8.0 (2025-10-14) へアップデートするときに必要となる作業

コンテナの環境変数からデータベースのシステム設定への移行

UCIDM APIAgent モジュール のサービス設定の環境変数をシステム設定へ移行する必要があります。

詳細は弊社のサポート担当者にご確認ください。

RabbitMQ 接続設定の変更

コンテナをアップグレードするときに compose サービスが停止した状態で compose.yml (ucidm.env) の環境変数を移行します。

UCIDM API外部連携モジュール のサービス設定の環境変数を次のように変更する必要があります。

    environment:
-      AMQP_URL: "${AMQP_URL}"
+      RABBITMQ_USER: "${RABBITMQ_USER}"
+      RABBITMQ_PASSWORD: "${RABBITMQ_PASSWORD}"
+      RABBITMQ_HOST: "${RABBITMQ_HOST}"

MongoDB コンテナイメージのリポジトリ変更

Upcoming changes to the Bitnami catalog (effective August 28th, 2025) により、MongoDB のコンテナイメージを取得するリポジトリを bitnamilegacy/mongodb へ変更する必要があります。

  mongo:
-   image: docker.io/bitnami/mongodb:8.0.3
+   image: docker.io/bitnamilegacy/mongodb:8.0.3

1.5.0 (2025-01-10) から 1.7.0 (2025-05-02) へアップデートするときに必要となる作業

bind mounts volume ディレクトリ配下の owner/permission の変更

compose サービスを停止します。

$ docker compose down

compose.yml の mongo サービスから user: root を削除する。

  mongo:
    container_name: mongo
-   user: root
    image: docker.io/bitnamilegacy/mongodb:8.0.3

コンテナ内のアプリケーションを uid=1001 のユーザーが実行するように変更されたため、そのホスト上でのディレクトリやファイルの owner/permission を変更する必要があります。

subuid の設定を確認します。

$ cat /etc/subuid
ucidm:100000:65536

subuid が 100000 からマッピングする設定の場合はホスト上では uid=101000 (100000 + 1001 - 1) としてマッピングされます。compose.yml を配置している次の3つのディレクトリの owner/permission を変更します。

  • mongodb
  • agent-data
  • server-data
$ rootlesskit chown -R 1001:0 mongodb server-data agent-data

compose サービスを開始して正常に動作することを確認します。

$ docker compose up -d
Last updated on 2026-03-17 09:19 +0900 (main@799063d)