File size: 1,132 Bytes
6ce16b9
41c6f54
6ce16b9
5ecef72
41c6f54
5ecef72
 
 
6ce16b9
 
 
 
74d5bae
6ce16b9
 
 
 
 
d56f200
b2a8c60
0c6bd9c
6ce16b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 使用Alpine Linux作为基础镜像 - 体积小,适合容器化应用
FROM debian:latest

# 更新镜像
RUN apt update -y

RUN apt install curl wget -y

# 创建应用目录 - 确保目录存在
RUN mkdir -p /app/webx

# 复制应用程序文件到容器中
COPY webx /app/webx/webx 

# 赋予二进制文件可执行权限
RUN chmod +x /app/webx/webx

# 创建非特权用户 - 安全最佳实践
# 创建ID为1001的普通用户,符合HF Spaces要求

RUN useradd -m -u 1000 user     

# 设置目录权限 - 确保用户可以访问应用程序目录
# 将应用目录所有权给普通用户
RUN chown -R user:user /app       

# 切换到非root用户 - 提高容器安全性
USER user

# 设置环境变量
ENV HOME=/home/user \
    PATH=/app/webx:$PATH          

# 设置应用程序的工作目录 - 确保程序能找到配置文件
WORKDIR /app/webx

# 仅暴露必要端口 - 减少攻击面
# 应用程序监听的端口
EXPOSE 8632                       

# 设置容器启动时执行的命令 - 应用程序入口点
# 使用当前目录的相对路径执行,确保可以找到配置文件
CMD ["./webx"]