結論先行:SmartSlim Server 的Dockerデプロイ分四步——构建镜像、编写docker-compose.yml、启动サービス、検証健康確認。镜像大小约450MB,最低設定2核4GB即可実行,启动后5秒内を通じて健康確認。生产环境需設定データ卷持久化、Nginx反向代理、日志收集和定时备部。本文に出完整的docker-compose.yml設定、环境变量表和デプロイステップ詳解。以下ではデプロイ架构から説明し,逐步完成生产级デプロイ。
如果你需要理解Dockerデプロイ后如何调用圧縮API,まず圧縮API调用実戦:RESTful接口文档詳解。
一、Dockerデプロイ架构
SmartSlim Server 的Dockerデプロイ采用单容器架构,内部実行FastAPI適用,を通じてデータ卷持久化ファイル和設定,を通じて端口映射に対して外提供サービス。生产环境増加Nginx反向代理层処理TLS终止和负载均衡。
| グループ件 | 技術 | 作用 | 端口 |
|---|---|---|---|
| SmartSlim容器 | Python 3.9 + FastAPI | 圧縮サービス核心 | 8000(内部) |
| Nginx容器 | Nginx 1.25 | 反向代理/TLS | 80/443(外部) |
| データ卷-data | Docker Volume | 圧縮ファイルストレージ | - |
| データ卷-logs | Docker Volume | 日志ファイル | - |
| データ卷-config | Docker Volume | 設定和授权 | - |
デプロイ前需確認サービス器满足最低設定要求。下の表に示す不同负载下的設定推奨。
| デプロイ规模 | CPU | 内存 | 磁盘 | 并发数 | 適用シナリオ |
|---|---|---|---|---|---|
| 最低設定 | 2核 | 4GB | 20GB | 4 | テスト/小团队 |
| 推奨設定 | 4核 | 8GB | 50GB | 8 | 中型企業 |
| 高负载設定 | 8核 | 16GB | 100GB | 16 | 大型企業 |
| 集群設定 | 4核x3节点 | 8GBx3 | 共享ストレージ | 24+ | 高可用生产 |
二、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 |
三、环境变量設定表
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 | 临时ファイル目录 |
四、デプロイステップ詳解
Dockerデプロイ分构建、启动、検証、監視四步。下の表に示す每步的操作和検証方法。
| ステップ | 操作 | 命令 | 検証方法 |
|---|---|---|---|
| 1.构建镜像 | 构建SmartSlim镜像 | docker build -t smartslim-server . | docker images查看镜像 |
| 2.编写設定 | 编写docker-compose.yml | 编辑ymlファイル | docker-compose config検証 |
| 3.启动サービス | 启动所有容器 | docker-compose up -d | docker-compose ps查看状态 |
| 4.検証健康 | 確認サービス可用性 | curl http://localhost:8000/health | 返回{"status":"ok"} |
| 5.設定Nginx | 設定反向代理 | 编辑nginx.conf | curl https://域名/health |
| 6.デプロイ監視 | 設定日志和監視 | 設定日志收集 | docker logs查看日志 |
五、生产环境最佳实践
生产环境デプロイ需要关注健康確認、日志收集、データ备部和安全加固四つ方面。下の表に示す最佳实践推奨。
| 实践項目 | 設定推奨 | 確認频率 | ツール |
|---|---|---|---|
| 健康確認 | 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 |
| 镜像更新 | 定期pull最新镜像滚动更新 | 每月 | 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 | >50 | API status接口 |
| エラー率 | 0%–0.1% | >1% | 日志統計 |
如果你需要理解圧縮任务队列的底层设计,を参照してください圧縮任务队列设计。如果你更倾向を通じてSDKローカル集成而非サービス器デプロイ,を参照してください圧縮SDK集成指南。
六、よくある質問FAQ
Q1:Dockerデプロイ圧縮サービス需要什么設定?
SmartSlim Server 的Dockerデプロイ最低設定:2核CPU、4GB内存、20GB磁盘空間,推奨設定4核CPU、8GB内存、50GB磁盘。操作システム需インストールDocker 20.10+和Docker Compose 2.0+。サポートx86_64和ARM64架构,镜像大小约450MB。生产环境推奨预留额外磁盘空間存放临时圧縮ファイル。
Q2:Dockerデプロイ的圧縮サービス怎么更新升级?
更新フロー分三步:1.docker-compose pull拉取最新镜像;2.docker-compose up -d重新启动容器(データ卷データ不丢失);3.確認健康確認接口確認サービス正常。推奨更新前备部データ卷(docker run --volumes-from备部),滚动更新可在Kubernetes环境下実現零停机。版本间互換性良好,大版本升级前请查阅changelog。
Q3:Docker圧縮サービス怎么做データ持久化?
を通じてDockerデータ卷実現持久化。需要挂载三つ目录:/app/data(圧縮ファイルストレージ)、/app/logs(日志ファイル)、/app/config(設定ファイル和授权密钥)。在docker-compose.yml中用volumes字段声明宿主机到容器的映射。削除容器不会削除データ卷,データ安全。生产环境推奨をデータ卷挂载到独立磁盘或NAS,方便备部和扩容。
Q4:Docker圧縮サービスサポート高可用デプロイ吗?
智压通サービス器版サポート单机Dockerデプロイ,网络版サポートDocker Compose多サービス和Kubernetes高可用デプロイ。Kubernetes环境下を通じてHPA(水平Pod自動伸缩)実現3-10副本弹性扩容,配合共享ストレージ(MinIO)和共享データ库(MySQL)実現无状态化。单机版可を通じてNginx负载均衡+多実例実現簡単高可用,但推奨生产环境用网络版K8sソリューション。
まとめ
SmartSlim Server 的Dockerデプロイ四步走:构建镜像、编写docker-compose.yml、启动サービス、検証健康確認。镜像450MB,最低2核4GB可実行,启动5秒を通じて健康確認。环境变量9項目設定覆盖授权、并发、安全、限流等核心パラメータ。生产环境六大最佳实践:健康確認30秒间隔、日志100MB轮转、每日データ备部、非root安全加固、リソース制限4核8G、镜像月度更新。
覚えておくべき3つのポイント:一是データ卷必挂载三つ目录(data/logs/config),削除容器不丢データ;二是健康確認設定interval:30s + retries:3,90秒内发现异常自動重启;三是生产环境加Nginx反代做TLS终止,别直接暴露8000端口。デプロイ完成后,配合圧縮API和任务队列即可构建完整的圧縮サービス。
ファイルを圧縮してみませんか?SmartSlimを試す
独自開発のRust圧縮エンジンに基づき、PDF/画像/動画/Office/OFDなど10分野40以上の形式に対応。ローカル圧縮でデータは外部に送信されません。