UGLYPEAR AIが事業をアップグレード:高性能ドキュメント圧縮 × RAGデータエンジニアリング基盤新事業を詳しく見る →

Docker で圧縮サービスをデプロイする:SmartSlim サーバー版実践ガイド

結論から言います。SmartSlim Server の Docker デプロイは 4 ステップで完結します。イメージの構築、docker-compose.yml の作成、サービスの起動、ヘルスチェックの確認です。イメージサイズは約 450MB、最も小構成は 2 コア 4GB で動作し、起動から 5 秒以内にヘルスチェックを通過します。本番環境では、ボリュームによる永続化、Nginx リバースプロキシ、ログ収集、定時バックアップの設定が必要です。本記事では完全な docker-compose.yml 設定、環境変数表、デプロイ手順を順に解説します。まずはデプロイアーキテクチャから説明し、本番レベルの構成を段階的に仕上げていきます。

Docker デプロイ後に圧縮 API を呼び出す方法を知りたい方は、先に圧縮 API 活用ガイド:RESTful インターフェース仕様詳解を読むことをおすすめします。

1. Docker デプロイのアーキテクチャ

SmartSlim Server の Docker デプロイは単一コンテナ構成を採用しており、内部で FastAPI アプリケーションを実行し、ボリュームでファイルと設定を永続化し、ポートマッピング以外部にサービスを提供します。本番環境では TLS 終端とロードバランシングを担う Nginx リバースプロキシ層を追加します。

コンポーネント技術役割ポート
SmartSlim コンテナPython 3.9 + FastAPI圧縮サービスの中核8000(内部)
Nginx コンテナNginx 1.25リバースプロキシ/TLS80/443(外部)
ボリューム-dataDocker Volume圧縮ファイルの保存-
ボリューム-logsDocker Volumeログファイル-
ボリューム-configDocker Volume設定とライセンス-

デプロイ前にサーバーが最小要件を満たしていることを確認してください。以下の表は負荷ごとの推奨構成です。

デプロイ規模CPUメモリディスク同時接続数適用シーン
最も小構成2 コア4GB20GB4テスト/小規模チーム
推奨構成4 コア8GB50GB8中規模企業
高負荷構成8 コア16GB100GB16大規模企業
クラスタ構成4 コア × 3 ノード8GB × 3共あるストレージ24 以上高可用性の本番環境

2. docker-compose.yml 設定の詳細

以下は本番環境向け docker-compose.yml の主に設定で、SmartSlim サービス、Nginx リバースプロキシ、ボリューム、ネットワークを含みます。

設定項目説明設定例
imageイメージ名uglypear/smartslim-server:latest
restart再起動ポリシーalways(本番環境)
portsポートマッピング8000:8000
volumesボリュームマウント./data:/app/data
environment環境変数SMARTSLIM_LICENSE=xxx
healthcheckヘルスチェックcurl -f http://localhost:8000/health
depends_on依存サービスnginx
deploy.resourcesリソース制限cpus:4, memory:8G

3. 環境変数一覧

SmartSlim Server は環境変数で実行時パラメータを設定します。設定可能性な項目は以下の表にまとめます。

環境変数必須デフォルト値説明
SMARTSLIM_LICENSEはい-ライセンスキー
SMARTSLIM_HOSTいいえ0.0.0.0リッスンアドレス
SMARTSLIM_PORTいいえ8000リッスンポート
SMARTSLIM_WORKERSいいえ4ワーカープロセス数
SMARTSLIM_MAX_FILE_SIZEいいえ1073741824単一ファイル上限(1GB)
SMARTSLIM_SECURITY_LEVELいいえMEDIUMセキュリティレベル
SMARTSLIM_RATE_LIMITいいえ60分間リクエスト上限
SMARTSLIM_LOG_LEVELいいえINFOログレベル
SMARTSLIM_TEMP_DIRいいえ/app/data/tmp一時ファイルディレクトリ

4. デプロイ手順の詳細

Docker デプロイは構築、起動、検証、監視の 4 フェーズに分かれます。各ステップの操作確認方法は以下の表の通りです。

ステップ操作コマンド確認方法
1. イメージ構築SmartSlim イメージを構築docker build -t smartslim-server .docker images でイメージを確認
2. 設定作成docker-compose.yml を作成yml ファイルを編集docker-compose config で検証
3. サービス起動全コンテナを起動docker-compose up -ddocker-compose ps でステータスを確認
4. ヘルスチェックサービスの可用性を確認curl http://localhost:8000/health{"status":"ok"} が返る
5. Nginx 設定リバースプロキシを構成nginx.conf を編集curl https://ドメイン/health
6. 監視設定ログと監視を構成ログ収集を設定docker logs でログを確認

5. 本番環境ベストプラクティス

本番環境へのデプロイでは、ヘルスチェック、ログ収集、データバックアップ、セキュリティ強化の 4 点に注目する必要があります。ベストプラクティスは以下の表にまとめます。

プラクティス項目推奨設定確認頻度ツール
ヘルスチェックinterval:30s, timeout:10s, retries:3リアルタイムDocker healthcheck
ログ収集json-file ドライバ, max-size:100m, max-file:5リアルタイムDocker logging
データバックアップdata ボリュームを毎日別ストレージにバックアップ毎日cron + docker run
セキュリティ強化非 root ユーザーで実行、読み取り専用ファイルシステムデプロイ時Docker security
リソース制限cpus:4, memory:8G、アラート閾値 80%リアルタイムDocker stats
イメージ更新定期的に最も新イメージを取得しローリングアップデート毎月docker-compose pull

完全なヘルスチェック設定例は次のとおりです。healthcheck で interval を 30 秒(30 秒ごとに確認)、timeout を 10 秒(タイムアウトしたら失敗と判定)、retries を 3 回(3 回連続で失敗したら unhealthy とマーク)、start_period を 10 秒(起動から 10 秒後にチェック開始)に設定します。これでコンテナの異常は 90 秒以内に検知され、自動的に再起動されます。

監視指標正常範囲アラート閾値確認コマンド
CPU 使用率0%–60%>80%docker stats
メモリ使用率0%–70%>85%docker stats
ディスク使用率0%–70%>85%df -h
API 応答時間0–2 秒>5 秒curl -w パラメータ
圧縮キュー長0–20>50API status エンドポイント
エラー率0%–0.1%>1%ログ統計

圧縮タスクキューューの内部設計を知りたい方は、圧縮タスクキューューの設計を参照してください。サーバーデプロイではなくローカルで SDK を組み込みたい場合は、圧縮 SDK 連携ガイドもご覧ください。

6. よくある質問 FAQ

Q1:Docker での圧縮サービスデプロイに必要な構成は?

SmartSlim Server を Docker でデプロイする場合の最も小構成は、2 コア CPU、4GB メモリ、20GB ディスクです。推奨は 4 コア CPU、8GB メモリ、50GB ディスク。OS には Docker 20.10+ と Docker Compose 2.0+ が必要です。x86_64 と ARM64 に対応し、イメージサイズは約 450MB。本番環境では一時的な圧縮ファイルを置くため、別途ディスク領域を確保しておくことをおすすめします。

Q2:Docker デプロイした圧縮サービスのアップデート方法は?

アップデート手順は 3 ステップです。1. docker-compose pull で最も新イメージを取得。2. docker-compose up -d でコンテナを再起動(ボリュームのデータは保持されます)。3. ヘルスチェックエンドポイントで稼働状況を確認。アップデート前にデータボリュームをバックアップしておくと安心です(docker run --volumes-from)。Kubernetes 環境ではローリングアップデートにより無停止で更新できます。バージョン間の互換性は良好ですが、メジャーバージョンアップの前には changelog を確認してください。

Q3:Docker 圧縮サービスのデータ永続化はどう実現しますか?

Docker ボリュームを使って永続化を行います。マウントが必要な 3 つのディレクトリは、/app/data(圧縮ファイルの保存)、/app/logs(ログファイル)、/app/config(設定ファイルとライセンスキー)です。docker-compose.yml の volumes フィールドでホストとコンテナの対応関係を宣言します。コンテナを削除してもボリュームは残るためデータは保護されます。本番環境ではバックアップや拡張のしやすさを考慮し、独立したディスクや NAS にボリュームをマウントすることをおすすめします。

Q4:Docker 圧縮サービスは高可用デプロイに対応していますか?

SmartSlim サーバー版は単一マシンでの Docker デプロイに対応し、ネットワーク版では Docker Compose による複数サービス構成と Kubernetes による高可用デプロイをサポートします。Kubernetes 環境では HPA(Horizontal Pod Autoscaler)で 3〜10 レプリカまで自動スケールし、共あるストレージ(MinIO)や共あるデータベース(MySQL)と組み合わせることで状態レス化を実現できます。単一マシン版でも Nginx によるロードバランシングと複数インスタンスで簡易な高可用構成は可能性ですが、本番環境ではネットワーク版の K8s ソリューションョンを推奨します。

まとめ

SmartSlim Server の Docker デプロイは 4 ステップで完します。イメージの構築、docker-compose.yml の作成、サービスの起動、ヘルスチェックの確認です。イメージは 450MB、最も小 2 コア 4GB で動作し、5 秒でヘルスチェックを通過します。9 項目の環境変数でライセンス、同時実行、セキュリティ、流量制限といった主にパラメータをカバー。本番環境向けの 6 つのベストプラクティスは、30 秒間隔のヘルスチェック、100MB のログローテーション、毎日のデータバックアップ、root 権限を避けたセキュリティ強化、4 コア 8GB のリソース制限、月次のイメージアップデートです。

3 つのポイントを覚えておいてください。1 つ目は、ボリュームに 3 ディレクトリ(data/logs/config)を必ずマウントし、コンテナを削除してもデータを失わないようにすること。2 つ目は、ヘルスチェックを interval:30s + retries:3 で設定し、90 秒以内に異常を検知して自動再起動できるようにすること。3 つ目は、本番環境では Nginx リバースプロキシで TLS 終端を行い、8000 番ポートを直接露出させないことです。デプロイ完後は、圧縮 API とタスクキューを組み合わ使えば、圧縮サービスとしてすぐに使い始められます。

ファイルの圧縮でお困りですか?SmartSlim をお試しください

自社開発の Rust 圧縮エンジンを基盤に、PDF/画像/動画/Office/OFD など 10 大カテゴリ 40 以上の形式に対応。ローカル処理のためデータは外部に送信されません。