Spaces:
Running
Running
# 使用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"] |