25.09.01
parent
4236de43a9
commit
a5290c5e03
29
Dockerfile
29
Dockerfile
|
@ -1,16 +1,33 @@
|
|||
FROM python:3.12-slim
|
||||
FROM python:3.12-slim AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt .
|
||||
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
RUN pip wheel --no-cache-dir --no-deps --wheel-dir /app/wheels -r requirements.txt
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN python -m compileall -b .
|
||||
|
||||
FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/wheels /wheels
|
||||
COPY --from=builder /app/requirements.txt .
|
||||
RUN pip install --no-cache /wheels/*
|
||||
|
||||
COPY --from=builder /app /app
|
||||
|
||||
RUN find . -type d -name "__pycache__" | while read -r dir; do \
|
||||
module_dir=$(dirname "$dir"); \
|
||||
mv "$dir"/*.pyc "$module_dir/"; \
|
||||
rmdir "$dir"; \
|
||||
done
|
||||
|
||||
RUN find . -name "*.py" -delete
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
|
||||
# CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "-b", "0.0.0.0:8000", "main:app"]
|
||||
CMD ["gunicorn", "--config", "gunicorn.conf.py", "main:app"]
|
||||
CMD ["gunicorn", "--config", "gunicorn.conf.pyc", "main:app"]
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt .
|
||||
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
COPY . .
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
|
||||
# CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "-b", "0.0.0.0:8000", "main:app"]
|
||||
CMD ["gunicorn", "--config", "gunicorn.conf.py", "main:app"]
|
|
@ -34,7 +34,7 @@ async def get_favicon(
|
|||
bg_tasks: BackgroundTasks,
|
||||
url: Optional[str] = Query(None, description="网址:eg. https://www.baidu.com"),
|
||||
refresh: Optional[str] = Query(None, include_in_schema=False),
|
||||
sync: Optional[str] = Query(False, description="是否使用同步方式获取")
|
||||
sync: Optional[str] = Query('false', description="是否使用同步方式获取")
|
||||
):
|
||||
"""获取网站图标"""
|
||||
return await _service.get_favicon_handler(request, bg_tasks, url, refresh, sync)
|
||||
|
|
|
@ -3,18 +3,19 @@
|
|||
# 绑定地址和端口
|
||||
bind = "0.0.0.0:8000"
|
||||
|
||||
# Worker 进程数
|
||||
# Worker 进程数(推荐 CPU 核心数 * 2 + 1)
|
||||
workers = 4
|
||||
|
||||
# 使用 Uvicorn 的 ASGI Worker
|
||||
# 工作模式(sync、gevent、uvicorn.workers.UvicornWorker)
|
||||
worker_class = "uvicorn.workers.UvicornWorker"
|
||||
|
||||
# 可选:日志级别
|
||||
# 日志级别(debug、info、warning、error、critical)
|
||||
loglevel = "info"
|
||||
# loglevel = "warning"
|
||||
|
||||
# 可选:访问日志和错误日志输出到控制台(Docker 常用)
|
||||
# 访问日志文件("-" 表示输出到 stdout)
|
||||
accesslog = "-"
|
||||
|
||||
# 错误日志文件
|
||||
errorlog = "-"
|
||||
|
||||
# 可选:超时时间(秒)
|
||||
|
@ -22,3 +23,9 @@ timeout = 120
|
|||
|
||||
# Keep - Alive超时
|
||||
keepalive = 5
|
||||
|
||||
# 进程名(ps aux 中显示)
|
||||
# proc_name = "gunicorn"
|
||||
|
||||
# 守护进程运行(后台运行,默认 False)
|
||||
# daemon = True
|
||||
|
|
Loading…
Reference in New Issue