2568c0380b
MySQL:
- 新增 use_ssl 选项;MariaDB 11.x 默认强制 SSL 且默认 verify cert,
故启用 SSL 时同时加 --skip-ssl-verify-server-cert 以兼容自签名证书。
任务编辑回显:
- 后端 JobOut 新增 source_config_safe 字段,解密后敏感字段(password/token/
secret_key/access_key)脱敏为 "***"。
- 更新端点接收 source_config;若密码字段为 "***" 则保留原值不变,
支持"不改密码只改其它字段"的常见场景。
- 前端 JobForm 完整回显所有数据源字段,type='edit' 时去掉 disabled。
InfluxDB 备份(新增类型):
- 后端 core/backup/influxdb.py:
- v2.x:调用 influx CLI(influxdb2-client-2.7.5 二进制直接安装)执行 influx backup
生成目录后 tar.gz 流式打包上传。
- v1.x:通过 HTTP API 调用 /query?db=...&q=SELECT * FROM /.*/ 拉取全量数据
导出为 CSV + META.txt。
- Dockerfile:直接下载 influx CLI 二进制(绕开 apt 签名问题)。
- 前端 JobForm:根据 version 动态显示 v1/v2 表单字段。
- schemas/job.py:新增 InfluxDBSourceConfigV1 / V2。
- 类型字面量扩展:'mysql' | 'directory' | 'influxdb'。
Co-Authored-By: Claude <noreply@anthropic.com>
45 lines
1.3 KiB
Docker
45 lines
1.3 KiB
Docker
FROM python:3.11-slim
|
||
|
||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||
PYTHONUNBUFFERED=1 \
|
||
PIP_NO_CACHE_DIR=1 \
|
||
PIP_DISABLE_PIP_VERSION_CHECK=1
|
||
|
||
# 系统依赖:curl 用于健康检查,default-mysql-client 提供 mysqldump,tar 已内置,influx CLI 用于 InfluxDB 备份
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
curl \
|
||
default-mysql-client \
|
||
tar \
|
||
gzip \
|
||
tzdata \
|
||
ca-certificates \
|
||
gnupg \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# 安装 InfluxDB CLI(直接下载二进制,避免 apt 签名问题)
|
||
RUN set -eux; \
|
||
INFLUX_VERSION=2.7.5; \
|
||
curl -fsSL "https://dl.influxdata.com/influxdb/releases/influxdb2-client-${INFLUX_VERSION}-linux-amd64.tar.gz" \
|
||
-o /tmp/influx.tar.gz; \
|
||
tar -xzf /tmp/influx.tar.gz -C /tmp; \
|
||
mv /tmp/influx /usr/local/bin/influx; \
|
||
chmod +x /usr/local/bin/influx; \
|
||
rm -rf /tmp/influx.tar.gz /tmp/influx; \
|
||
influx version
|
||
|
||
WORKDIR /app
|
||
|
||
# 先安装依赖以利用 Docker 缓存
|
||
COPY requirements.txt .
|
||
RUN pip install --no-cache-dir -r requirements.txt
|
||
|
||
COPY . .
|
||
|
||
# 数据、日志、备份目录
|
||
RUN mkdir -p /app/data/backups /app/logs
|
||
|
||
EXPOSE 8000
|
||
|
||
# alembic 升级 + 启动 uvicorn
|
||
CMD ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000"]
|