krin002 commited on
Commit
9df638d
·
verified ·
1 Parent(s): 4994033

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +51 -1
Dockerfile CHANGED
@@ -1 +1,51 @@
1
- FROM rfym21/qwen2api:latest
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM rfym21/qwen2api:latest
2
+
3
+ # 切换到 root 用户进行安装
4
+ USER root
5
+
6
+ # 安装 Redis 服务器和 Supervisor
7
+ RUN apt-get update && \
8
+ apt-get install -y redis-server supervisor && \
9
+ apt-get clean && \
10
+ rm -rf /var/lib/apt/lists/*
11
+
12
+ # 配置 Supervisor 来管理 Redis 和你的原始应用
13
+ # 1. 创建 supervisor 配置文件目录 (如果不存在)
14
+ RUN mkdir -p /etc/supervisor/conf.d/
15
+
16
+ # 2. 创建 supervisor 配置文件
17
+ COPY <<EOF /etc/supervisor/conf.d/supervisord.conf
18
+ [supervisord]
19
+ nodaemon=true ; 在前台运行 supervisord
20
+ user=root ; 以 root 运行 supervisord (需要管理其他进程)
21
+
22
+ [program:redis]
23
+ command=/usr/bin/redis-server --loglevel warning ; 启动 redis server
24
+ autostart=true
25
+ autorestart=true
26
+ stderr_logfile=/dev/stderr ; 将 stderr 重定向到容器日志
27
+ stderr_logfile_maxbytes=0
28
+ stdout_logfile=/dev/stdout ; 将 stdout 重定向到容器日志
29
+ stdout_logfile_maxbytes=0
30
+ user=redis ; 以 redis 用户运行 (如果存在且有权限)
31
+ ; 如果不行,可能需要以 root 运行或调整目录权限
32
+
33
+ [program:qwen2api]
34
+ command=npm start --arg1 --arg2
35
+ autostart=true
36
+ autorestart=true
37
+ stopwaitsecs=10 ; 等待10秒优雅停止
38
+ stderr_logfile=/dev/stderr ; 将 stderr 重定向到容器日志
39
+ stderr_logfile_maxbytes=0
40
+ stdout_logfile=/dev/stdout ; 将 stdout 重定向到容器日志
41
+ stdout_logfile_maxbytes=0
42
+ # user=... ; 如果原始应用需要以特定用户运行,在这里指定
43
+ # directory=/app ; 如果应用需要特定的工作目录,在这里指定
44
+ EOF
45
+
46
+ # 设置环境变量 REDIS_URL
47
+ # 因为 Redis 和应用在同一个容器内,使用 localhost
48
+ ENV REDIS_URL=redis://localhost:6379/0
49
+
50
+ # 容器启动时运行 Supervisor,它会负责启动 Redis 和你的应用
51
+ CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]