システム更新ガイド¶
本ドキュメントでは、New APIシステムの更新方法とベストプラクティスを提供し、システムが最新バージョンへ円滑にアップグレードされることを保証します。
更新前の準備作業¶
システムを更新する前に、以下の準備作業を実行することを推奨します。
- データのバックアップ:データベースと重要な設定ファイルをバックアップします
- 更新ログの確認:GitHub Releasesで最新バージョンの更新内容を確認します
- 互換性のチェック:新バージョンが既存のプラグイン、統合、またはカスタム設定と互換性があることを確認します
- 適切な時間の選択:ユーザーへの影響を最小限に抑えるため、トラフィックの少ない時間帯に更新を実行します
Dockerデプロイの更新方法¶
方法一:シングルコンテナデプロイの更新¶
単一のDockerコンテナを使用してNew APIをデプロイしている場合、以下の手順で更新できます。
# 拉取最新镜像
docker pull calciumion/new-api:latest
# 停止并移除旧容器
docker stop new-api
docker rm new-api
# 使用相同的参数重新运行容器
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /your/data/path:/data \
calciumion/new-api:latest
ご注意ください
特にデータボリュームのマウントと環境変数の設定において、元のコンテナと同じパラメータを使用して新しいコンテナを起動するようにしてください。
方法二:Docker Composeを使用した更新¶
Docker Composeを使用してデプロイしている場合(Docker Compose配置说明を参照)、更新プロセスはより簡単です。
または、より簡潔なコマンドを使用します。
方法三:1Panel パネルを使用した更新¶
1Panel パネルを使用してデプロイしている場合、以下の手順で更新できます。
- 1Panel パネルにログインし、アプリケーションストア -> アップグレード可能ページ に移動します
- New API アプリケーションを見つけ、アップグレード ボタンをクリックします
- アップグレード対象のバージョン を選択します
- 確認 ボタンをクリックすると、システムが自動的に最新イメージをプルしてアプリケーションをアップグレードします
方法四:宝塔パネルを使用した更新¶
宝塔パネルを使用してデプロイしている場合、以下の手順で更新できます。
- 宝塔パネルにログインし、Docker管理 -> コンテナリスト に移動します
- New API コンテナを見つけ、その他 -> 再作成 をクリックします
- 最新イメージをプル オプションにチェックを入れ、他の設定が変更されていないことを確認します
- 送信 をクリックすると、システムが自動的に最新イメージをプルし、コンテナを再作成します
ソースコードからコンパイルした場合の更新方法¶
ソースコードからNew APIをコンパイルしてデプロイしている場合、更新手順は以下の通りです。
# 进入项目目录
cd new-api
# 拉取最新代码
git pull
# 编译后端
go build -o new-api
# 更新并编译前端
cd web
bun install
bun run build
cd ..
# 重启服务
./new-api --port 3000
マルチノードデプロイの更新戦略¶
マルチノードデプロイ環境の場合、以下の更新戦略を採用することを推奨します。
- まずスレーブノードを更新:最初に1つのスレーブノードを更新し、その安定性をテストします
- 段階的に進行:スレーブノードの安定性を確認した後、残りのスレーブノードを一つずつ更新します
- 最後にマスターノードを更新:すべてのスレーブノードが安定稼働した後、マスターノードを更新します
この戦略により、サービス中断のリスクを最小限に抑えることができます。
詳細ガイド
クラスターデプロイに関する完全なガイドについては、クラスターデプロイメントドキュメントを参照してください。
更新後の確認事項¶
システム更新後、システムが正常に動作していることを確認するために、以下の事項をチェックしてください。
- 管理インターフェースへのアクセス:管理インターフェースに正常にログインし、アクセスできることを確認します
- ログの確認:システムログにエラーや警告がないか確認します
- API呼び出しのテスト:機能が正常であることを確認するために、いくつかのAPI呼び出しをテストします
- データベース移行の確認:データベース構造の更新が成功したことを確認します
- チャネル状態の確認:すべてのチャネル接続が正常であることを確認します
バージョンロールバック¶
更新後に問題が発生した場合、以前の安定バージョンにロールバックできます。
Docker ロールバック¶
# 拉取特定版本的镜像
docker pull calciumion/new-api:v1.x.x
# 停止并移除当前容器
docker stop new-api
docker rm new-api
# 使用旧版本镜像重新创建容器
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /your/data/path:/data \
calciumion/new-api:v1.x.x
ソースコード ロールバック¶
# 进入项目目录
cd new-api
# 切换到特定版本
git checkout v1.x.x
# 重新编译
go build -o new-api
# 更新并编译前端
cd web
bun install
bun run build
cd ..
# 重启服务
./new-api --port 3000
よくある質問¶
更新後にサービスを起動できない¶
- ログにエラーメッセージがないか確認します
- データベース接続が正常であることを確認します
- 環境変数の設定が正しいことを確認します
更新後に機能が異常になる¶
- API形式の変更がないか確認します
- フロントエンドとバックエンドのバージョンが一致しているか確認します
- 新バージョンに追加の設定が必要かどうか確認します
データベース構造の非互換性¶
- 更新ログにデータベース移行に関する説明がないか確認します
- データベース移行スクリプトを手動で実行する必要があるか確認します
- データベースアップグレードのガイダンスについて開発者に連絡します
自動更新ツール(慎重に使用)¶
自動更新を希望するユーザーは、Watchtowerを使用してコンテナを自動更新できます。
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--run-once new-api
ご注意ください
自動更新は、特にデータベース構造が変更される場合に予期せぬ問題を引き起こす可能性があります。自動更新はテスト環境でのみ使用することを推奨し、本番環境では手動で更新プロセスを制御する必要があります。