Ver código fonte

更新 'Dockerfile'

林海 2 dias atrás
pai
commit
fc2a5ad57e
1 arquivos alterados com 17 adições e 13 exclusões
  1. 17 13
      Dockerfile

+ 17 - 13
Dockerfile

@@ -1,27 +1,31 @@
+# 基础镜像:Python 3.11 轻量版
 FROM python:3.11-slim
 
+# 设置工作目录(容器内)
 WORKDIR /app
 
+# 复制依赖清单并安装依赖(--no-cache-dir 避免缓存,减小镜像体积)
 COPY requirements.txt .
 RUN pip install --no-cache-dir -r requirements.txt
 
 # 安装 gunicorn 用于生产环境运行 Flask
 RUN pip install --no-cache-dir gunicorn
 
+# 复制当前目录所有文件到容器的 /app 目录
 COPY . .
 
+# 暴露容器端口(仅声明,不实际映射,映射由docker-compose/run命令控制)
 EXPOSE 8888
 
-CMD [
-    "gunicorn",
-    "-w", "4",                # Worker数(建议 2*CPU核心+1,根据服务器调整)
-    "-b", "0.0.0.0:8888",     # 绑定地址和端口
-    "--timeout", "300",       # Worker超时时间(解决超时被杀死)
-    "--graceful-timeout", "300",  # 优雅重启超时
-    "--worker-class", "gevent",   # 异步worker(适合长任务/高并发,减少阻塞)
-    "--worker-connections", "1000",  # 每个worker最大连接数
-    "--access-logfile", "-",        # 访问日志输出到stdout(Docker可捕获)
-    "--error-logfile", "-",         # 错误日志输出到stdout
-    "--log-level", "info",          # 日志级别,方便排查问题
-    "app:app"
-]
+# 启动命令:gunicorn运行Flask应用(单行JSON格式,避免多行解析错误)
+# -w 4:Worker数(建议 2*CPU核心+1,根据服务器调整)
+# -b 0.0.0.0:8888:绑定地址和端口(0.0.0.0允许外部访问)
+# --timeout 300:Worker超时时间(解决长任务超时被杀死)
+# --graceful-timeout 300:优雅重启超时
+# --worker-class gevent:异步worker(适合长任务/高并发,减少阻塞)
+# --worker-connections 1000:每个worker最大连接数
+# --access-logfile -:访问日志输出到stdout(Docker可捕获)
+# --error-logfile -:错误日志输出到stdout
+# --log-level info:日志级别,方便排查问题
+# app:app:Flask应用入口(第一个app是app.py文件,第二个app是文件内的Flask实例)
+CMD ["gunicorn", "-w", "2", "-b", "0.0.0.0:8888", "--timeout", "300", "--graceful-timeout", "300", "--worker-class", "gevent", "--worker-connections", "1000", "--access-logfile", "-", "--error-logfile", "-", "--log-level", "info", "app:app"]