新增内容: - 创建基础项目结构。 - 添加 `.gitignore` 和 `.dockerignore` 文件。 - 编写 `pyproject.toml` 和依赖文件。 - 添加算法模块及示例算法。 - 实现核心功能模块(日志、错误处理、指标)。 - 添加开发和运行所需的相关脚本文件及文档。
34 lines
1.0 KiB
Docker
34 lines
1.0 KiB
Docker
# Redis Exporter Dockerfile
|
|
FROM python:3.11-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# 安装依赖
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir redis prometheus-client
|
|
|
|
# 复制 exporter 代码
|
|
COPY src/functional_scaffold/core/metrics_redis_exporter.py .
|
|
|
|
# 暴露端口
|
|
EXPOSE 8001
|
|
|
|
# 启动 HTTP 服务器提供指标
|
|
CMD ["python", "-c", "\
|
|
from http.server import HTTPServer, BaseHTTPRequestHandler; \
|
|
from metrics_redis_exporter import get_metrics; \
|
|
class MetricsHandler(BaseHTTPRequestHandler): \
|
|
def do_GET(self): \
|
|
if self.path == '/metrics': \
|
|
self.send_response(200); \
|
|
self.send_header('Content-Type', 'text/plain; version=0.0.4'); \
|
|
self.end_headers(); \
|
|
self.wfile.write(get_metrics()); \
|
|
else: \
|
|
self.send_response(404); \
|
|
self.end_headers(); \
|
|
def log_message(self, format, *args): pass; \
|
|
server = HTTPServer(('0.0.0.0', 8001), MetricsHandler); \
|
|
print('Redis Exporter 启动在端口 8001'); \
|
|
server.serve_forever()"]
|