Baseline: pr1 HYC下载站 v2.3 before security/functional fixes
This commit is contained in:
@@ -0,0 +1,328 @@
|
||||
# Docker 部署指南
|
||||
|
||||
本项目提供多种 Docker 部署方式,支持多种架构和配置。
|
||||
|
||||
## 目录
|
||||
|
||||
- [快速开始](#快速开始)
|
||||
- [Docker 镜像](#docker-镜像)
|
||||
- [Dockerfile 说明](#dockerfile-说明)
|
||||
- [Docker Compose](#docker-compose)
|
||||
- [Kubernetes 部署](#kubernetes-部署)
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 使用 Docker Hub 镜像(推荐)
|
||||
|
||||
```bash
|
||||
# 拉取最新镜像
|
||||
docker pull hx100cv/hyc-download:latest
|
||||
|
||||
# 运行容器
|
||||
docker run -d \
|
||||
--name hyc-download \
|
||||
-p 8080:8080 \
|
||||
-v /data:/data \
|
||||
-v /downloads:/downloads \
|
||||
hx100cv/hyc-download:latest
|
||||
```
|
||||
|
||||
### 使用 GitHub Container Registry
|
||||
|
||||
```bash
|
||||
# 拉取镜像
|
||||
docker pull ghcr.io/hexikx/mirror_server:latest
|
||||
|
||||
# 运行容器
|
||||
docker run -d \
|
||||
--name hyc-download \
|
||||
-p 8080:8080 \
|
||||
-v /data:/data \
|
||||
-v /downloads:/downloads \
|
||||
ghcr.io/hexikx/mirror_server:latest
|
||||
```
|
||||
|
||||
## Docker 镜像
|
||||
|
||||
### 多架构支持
|
||||
|
||||
项目自动构建以下架构的镜像:
|
||||
|
||||
| 架构 | 镜像标签 |
|
||||
|------|----------|
|
||||
| Linux AMD64 | `hx100cv/hyc-download:amd64-latest` |
|
||||
| Linux ARM64 | `hx100cv/hyc-download:arm64v8-latest` |
|
||||
| Linux ARMv7 | `hx100cv/hyc-download:arm32v7-latest` |
|
||||
|
||||
### 拉取特定架构
|
||||
|
||||
```bash
|
||||
# AMD64
|
||||
docker pull hx100cv/hyc-download:amd64-latest
|
||||
|
||||
# ARM64
|
||||
docker pull hx100cv/hyc-download:arm64v8-latest
|
||||
|
||||
# ARMv7
|
||||
docker pull hx100cv/hyc-download:arm32v7-latest
|
||||
```
|
||||
|
||||
### 使用 Manifest(自动选择架构)
|
||||
|
||||
```bash
|
||||
# 自动选择对应架构的镜像
|
||||
docker pull hx100cv/hyc-download:latest
|
||||
```
|
||||
|
||||
## Dockerfile 说明
|
||||
|
||||
### Dockerfile(推荐)
|
||||
|
||||
完整功能镜像,包含所有依赖。
|
||||
|
||||
```dockerfile
|
||||
FROM hx100cv/hyc-download:latest
|
||||
```
|
||||
|
||||
### Dockerfile.lite
|
||||
|
||||
轻量级镜像,适合资源受限的设备。
|
||||
|
||||
```dockerfile
|
||||
FROM hx100cv/hyc-download:lite
|
||||
```
|
||||
|
||||
### Dockerfile.multiarch
|
||||
|
||||
用于构建多架构镜像的 Dockerfile。
|
||||
|
||||
```bash
|
||||
# 构建多架构镜像
|
||||
docker buildx build -f docker/Dockerfile.multiarch \
|
||||
--platform linux/amd64,linux/arm64,linux/arm/v7 \
|
||||
-t hx100cv/hyc-download:multi \
|
||||
--push .
|
||||
```
|
||||
|
||||
## Docker Compose
|
||||
|
||||
### 基础用法
|
||||
|
||||
```bash
|
||||
# 启动服务
|
||||
docker-compose up -d
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 停止服务
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
### 配置文件
|
||||
|
||||
项目提供以下 Docker Compose 配置文件:
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `docker-compose.yml` | 完整配置 |
|
||||
| `docker-compose.lite.yml` | 轻量配置 |
|
||||
| `docker-compose.raspberry.yml` | Raspberry Pi 配置 |
|
||||
|
||||
```bash
|
||||
# 使用完整配置
|
||||
docker-compose -f docker-compose.yml up -d
|
||||
|
||||
# 使用轻量配置
|
||||
docker-compose -f docker-compose.lite.yml up -d
|
||||
|
||||
# 使用 Raspberry Pi 配置
|
||||
docker-compose -f docker-compose.raspberry.yml up -d
|
||||
```
|
||||
|
||||
### 带 Nginx 反向代理
|
||||
|
||||
```bash
|
||||
docker-compose --profile with-nginx up -d
|
||||
```
|
||||
|
||||
## Kubernetes 部署
|
||||
|
||||
### 部署文件
|
||||
|
||||
项目提供以下 K8s 配置文件:
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `k8s/deployment.yaml` | Deployment 配置 |
|
||||
| `k8s/service.yaml` | Service 配置 |
|
||||
| `k8s/helm/` | Helm Chart |
|
||||
|
||||
### 使用 Helm 部署
|
||||
|
||||
```bash
|
||||
# 添加 Helm 仓库
|
||||
helm repo add hyc-download https://hexikx.github.io/mirror_server
|
||||
|
||||
# 更新 Helm 仓库
|
||||
helm repo update
|
||||
|
||||
# 部署
|
||||
helm install my-hyc-download hyc-download/hyc-download
|
||||
```
|
||||
|
||||
### 手动部署
|
||||
|
||||
```bash
|
||||
# 应用配置
|
||||
kubectl apply -f k8s/deployment.yaml
|
||||
kubectl apply -f k8s/service.yaml
|
||||
|
||||
# 查看状态
|
||||
kubectl get pods
|
||||
kubectl get services
|
||||
```
|
||||
|
||||
## 数据持久化
|
||||
|
||||
### 挂载卷
|
||||
|
||||
```bash
|
||||
# 数据目录
|
||||
-v /path/to/data:/data
|
||||
|
||||
# 下载目录
|
||||
-v /path/to/downloads:/downloads
|
||||
|
||||
# 配置目录
|
||||
-v /path/to/config:/app/config
|
||||
```
|
||||
|
||||
### 使用命名卷
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- data:/data
|
||||
- downloads:/downloads
|
||||
```
|
||||
|
||||
## 环境变量
|
||||
|
||||
### 支持的环境变量
|
||||
|
||||
| 变量名 | 说明 | 默认值 |
|
||||
|--------|------|--------|
|
||||
| `HYC_HOST` | 监听地址 | `0.0.0.0` |
|
||||
| `HYC_PORT` | 监听端口 | `8080` |
|
||||
| `HYC_BASE_DIR` | 文件存储目录 | `/downloads` |
|
||||
| `HYC_AUTH_TYPE` | 认证类型 | `none` |
|
||||
| `HYC_AUTH_USER` | 认证用户名 | `admin` |
|
||||
| `HYC_AUTH_PASS` | 认证密码 | `password` |
|
||||
| `HYC_ENABLE_MONITOR` | 启用监控 | `true` |
|
||||
| `HYC_ENABLE_MIRRORS` | 启用镜像加速 | `true` |
|
||||
| `HYC_RATE_LIMIT` | 下载限速 | `0` |
|
||||
|
||||
### 示例
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name hyc-download \
|
||||
-p 8080:8080 \
|
||||
-e HYC_AUTH_TYPE=basic \
|
||||
-e HYC_AUTH_USER=admin \
|
||||
-e HYC_AUTH_PASS=secret \
|
||||
hx100cv/hyc-download:latest
|
||||
```
|
||||
|
||||
## 健康检查
|
||||
|
||||
容器内置健康检查:
|
||||
|
||||
```yaml
|
||||
healthcheck:
|
||||
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/api/v1/health')"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
```
|
||||
|
||||
## 日志
|
||||
|
||||
### 查看日志
|
||||
|
||||
```bash
|
||||
# 实时日志
|
||||
docker logs -f hyc-download
|
||||
|
||||
# 最近 100 行
|
||||
docker logs --tail 100 hyc-download
|
||||
```
|
||||
|
||||
### 日志级别
|
||||
|
||||
```bash
|
||||
# 详细输出
|
||||
docker run -e HYC_VERBOSE=1 hx100cv/hyc-download:latest
|
||||
|
||||
# 静默模式
|
||||
docker run -e HYC_QUIET=1 hx100cv/hyc-download:latest
|
||||
```
|
||||
|
||||
## 更新升级
|
||||
|
||||
### 拉取新版本
|
||||
|
||||
```bash
|
||||
# 拉取最新镜像
|
||||
docker pull hx100cv/hyc-download:latest
|
||||
|
||||
# 停止旧容器
|
||||
docker-compose down
|
||||
|
||||
# 启动新容器
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 使用 Watchtower 自动更新
|
||||
|
||||
```bash
|
||||
# 运行 Watchtower
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower \
|
||||
hyc-download
|
||||
```
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 容器无法启动
|
||||
|
||||
```bash
|
||||
# 查看详细错误
|
||||
docker logs hyc-download
|
||||
|
||||
# 进入容器排查
|
||||
docker exec -it hyc-download /bin/bash
|
||||
```
|
||||
|
||||
### 端口冲突
|
||||
|
||||
```bash
|
||||
# 检查端口占用
|
||||
netstat -tlnp | grep 8080
|
||||
|
||||
# 修改映射端口
|
||||
docker run -p 8888:8080 hx100cv/hyc-download:latest
|
||||
```
|
||||
|
||||
### 权限问题
|
||||
|
||||
```bash
|
||||
# 修改目录权限
|
||||
chmod 777 /data /downloads
|
||||
|
||||
# 或使用用户运行
|
||||
docker run -u 1000:1000 hx100cv/hyc-download:latest
|
||||
```
|
||||
Reference in New Issue
Block a user