Download Dockerfile.binary from ASEM12345/anti_api: direct link, hf CLI and curl.
- Browser
- Download file 3.06 kB
-
https://huggingface.co/spaces/ASEM12345/anti_api/resolve/main/Dockerfile.binary
- Command line
-
hf download hf://spaces/ASEM12345/anti_api/Dockerfile.binary
-
curl -L -o Dockerfile.binary https://huggingface.co/spaces/ASEM12345/anti_api/resolve/main/Dockerfile.binary
3.06 kB
| # 使用编译后的二进制文件运行 | |
| # 这个镜像更小,启动更快,内存占用更低 | |
| # | |
| # 构建方式: | |
| # 1. 先运行 npm run build:linux 或 npm run build:linux-arm64 生成 dist 目录 | |
| # 2. 然后运行 docker build -f Dockerfile.binary -t antigravity . | |
| FROM debian:bookworm-slim | |
| WORKDIR /app | |
| # 安装必要的运行时依赖 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 复制编译后的文件(由 CI 工作流预先编译) | |
| # 使用通配符匹配不同架构的二进制文件 | |
| COPY dist/antigravity-linux-* /app/antigravity | |
| COPY dist/public /app/public | |
| COPY dist/bin /app/bin | |
| COPY dist/config.json /app/config.json | |
| # 设置执行权限 | |
| RUN chmod +x /app/antigravity && \ | |
| (chmod +x /app/bin/* 2>/dev/null || true) | |
| # 创建数据和图片目录,以及带默认配置的 .env 文件 | |
| RUN mkdir -p /app/data /app/public/images && \ | |
| echo "# 敏感配置(只在 .env 中配置)" > /app/.env && \ | |
| echo "# 如果不配置以下三项,系统会自动生成随机凭据并在启动时显示" >> /app/.env && \ | |
| echo "# API_KEY=your-api-key" >> /app/.env && \ | |
| echo "# ADMIN_USERNAME=your-username" >> /app/.env && \ | |
| echo "# ADMIN_PASSWORD=your-password" >> /app/.env && \ | |
| echo "# JWT_SECRET=your-jwt-secret" >> /app/.env && \ | |
| echo "" >> /app/.env && \ | |
| echo "# 可选配置" >> /app/.env && \ | |
| echo "# PROXY=http://127.0.0.1:7890" >> /app/.env && \ | |
| echo "SYSTEM_INSTRUCTION=你是聊天机器人,名字叫萌萌,如同名字这般,你的性格是软软糯糯萌萌哒的,专门为用户提供聊天和情绪价值,协助进行小说创作或者角色扮演" >> /app/.env && \ | |
| echo "# IMAGE_BASE_URL=http://your-domain.com" >> /app/.env | |
| # 创建启动脚本:同步环境变量到 .env 文件 | |
| RUN cat > /app/entrypoint.sh << 'EOF' | |
| #!/bin/sh | |
| # 同步环境变量到 .env 文件 | |
| ENV_FILE="/app/.env" | |
| # 同步单个环境变量的函数 | |
| # 使用 ${var+x} 语法检测变量是否被设置(包括空值) | |
| sync_env() { | |
| key=$1 | |
| # 检查环境变量是否被设置(包括空值) | |
| if eval "[ \"\${${key}+x}\" ]"; then | |
| value=$(eval echo \"\$$key\") | |
| # 检查是否已存在该配置 | |
| if grep -q "^${key}=" "$ENV_FILE" 2>/dev/null; then | |
| # 替换现有配置(使用 # 作为分隔符避免值中的特殊字符问题) | |
| sed -i "s#^${key}=.*#${key}=${value}#" "$ENV_FILE" | |
| else | |
| # 添加新配置 | |
| echo "${key}=${value}" >> "$ENV_FILE" | |
| fi | |
| if [ -n "$value" ]; then | |
| echo "✓ 已同步环境变量: ${key}=${value}" | |
| else | |
| echo "✓ 已同步环境变量: ${key}=(空值)" | |
| fi | |
| fi | |
| } | |
| # 同步所有支持的环境变量 | |
| sync_env "API_KEY" | |
| sync_env "ADMIN_USERNAME" | |
| sync_env "ADMIN_PASSWORD" | |
| sync_env "JWT_SECRET" | |
| sync_env "PROXY" | |
| sync_env "SYSTEM_INSTRUCTION" | |
| sync_env "IMAGE_BASE_URL" | |
| # 启动应用 | |
| exec /app/antigravity | |
| EOF | |
| RUN chmod +x /app/entrypoint.sh | |
| # 暴露端口 | |
| EXPOSE 8045 | |
| # 启动应用 | |
| CMD ["/app/entrypoint.sh"] |