> For AI agents: the complete documentation index is available at /resource/ucidm/docs/on-premise/dev/llms.txt, the full documentation bundle is available at /resource/ucidm/docs/on-premise/dev/llms-full.txt.

# コンテナイメージのバージョンアップ \{#container-image-upgrade}

UCIDM は [Docker Compose](https://docs.docker.com/compose/) を使ってコンテナイメージとしてパッケージングされています。そのため、コンテナイメージを更新することで新しいバージョンにアップグレードできます。

但し、オンプレ版の UCIDM は1台のサーバーで運用することを前提に設計されているため、サービスを停止せずに稼働したままバージョンアップすることはできません。アップグレードによる移行や設定変更がなかったとしても、必ず再起動のタイミングで十数秒程度のダウンタイムが発生します。またバージョンアップするときに移行作業を必要とする場合もあります。バージョンアップするときはサポート担当者にご相談ください。アップグレード作業をするときはサービス停止のアナウンスを行い、ID 連携を行っていない時間帯に実施してください。

UCIDM の一部のサービスのみをバージョンアップする場合とすべてのサービスをバージョンアップする場合で作業手順が異なります。

## deploy コマンド \{#deploy-command}

一部のサービスのみをバージョンアップするための運用ツールとして deploy というコマンドがあります。

バージョン情報を確認します。

```bash
$ /opt/osstech/bin/deploy -version
revision: c47dd3a
```

稼働しているコンテナの情報を表示します。

```bash
$ /opt/osstech/bin/deploy info
```

次のようなエラーが発生するときは DOCKER_HOST の環境変数が適切に設定されているかを確認してください。

```bash
$ echo $DOCKER_HOST
```

```
time=2025-01-09T09:42:27.578+09:00
  level=ERROR
  msg="failed to get informations"
  err="failed to get container list: Cannot connect to the Docker daemon
       at unix:///var/run/docker.sock. Is the docker daemon running?"
```

適切に設定されていない場合は次のようにユーザー情報にあわせて設定します。

```bash
$ export DOCKER_HOST="unix:///run/user/$(id -u)/docker.sock"
```

### コンテナイメージのアップグレード \{#container-image-upgrade-procedure}

特定のコンテナイメージを使うすべてのサービスをアップグレードします。最新バージョンに更新するときは `latest` タグを指定します。

```bash
$ /opt/osstech/bin/deploy upgrade \
  -path /var/opt/osstech/lib/ucidm/compose.yml \
  -image docker.io/osstech/ucidm-consumer:latest
```

特定バージョンに更新するときはそのハッシュ値のタグを指定します。

```bash
$ /opt/osstech/bin/deploy upgrade \
  -path /var/opt/osstech/lib/ucidm/compose.yml \
  -image docker.io/osstech/ucidm-consumer:aa92eb33
```

### コンテナイメージのロールバック \{#container-image-rollback}

アップグレードしたときに問題が発生した場合など、それまで使っていたコンテナイメージにロールバックできます。

```bash
$ /opt/osstech/bin/deploy rollback \
  -path /var/opt/osstech/lib/ucidm/compose.yml \
  -image docker.io/osstech/ucidm-consumer
```

ロールバックはローカルリポジトリから、いま使っているコンテナイメージの1つ前のバージョンを使います。従ってロールバックを実行すると1つずつ過去のバージョンに戻り続けます。

## docker compose を使う \{#using-docker-compose}

すべてのサービスをアップグレードするときは docker compose コマンドを使って次のように実行します。

```bash
$ cd /var/opt/osstech/lib/ucidm
$ docker compose pull
$ docker compose down
$ docker compose up -d
```

アップグレードして正常にサービスが起動しているかを ps コマンドで確認します。

```bash
$ docker compose ps
```
