
archivebox/sonicarchivebox/sonic 是 valeriansaliou/sonic 的多架构预编译镜像,支持 arm64 和 amd64 架构。Sonic 是一个轻量级的全文搜索引擎,该镜像旨在简化 Sonic 在容器环境中的集成,可通过多阶段构建直接将预编译的 Sonic 二进制文件捆绑到目标容器中,避免手动安装构建依赖(如 cargo、brew)或从源码编译的繁琐流程。
linux/amd64 和 linux/arm64 架构,适配 x86_64 和 ARM64 设备。/etc/sonic.cfg,开箱即用。build-essential、clang),减小镜像体积。sonic --version 验证二进制文件可用性。在目标应用的 Dockerfile 中,通过多阶段构建从 archivebox/sonic 镜像复制预编译的 Sonic 二进制文件:
dockerfile# 目标应用基础镜像(示例为 Python,可替换为其他基础镜像) FROM python:3.11-slim-bookworm # 已在 bookworm 测试,其他版本可能兼容 # ... 应用自身构建步骤(如安装依赖、复制代码等) ... # 从 archivebox/sonic 复制 Sonic 二进制文件到目标镜像 COPY --from=archivebox/sonic /usr/local/bin/sonic /usr/local/bin/sonic # 验证 Sonic 是否成功集成 RUN /usr/local/bin/sonic --version # ... 应用启动命令等 ...
如需独立运行 Sonic 服务,可直接通过 docker run 启动容器:
bash# 基本运行(使用默认配置) docker run -d \ --name sonic \ -p 1491:1491 \ archivebox/sonic:latest # 自定义配置文件(挂载本地配置文件覆盖默认配置) docker run -d \ --name sonic \ -p 1491:1491 \ -v /path/to/your/sonic.cfg:/etc/sonic.cfg \ archivebox/sonic:latest
/etc/sonic.cfg,包含基础运行参数(如端口 1491、数据目录等)。/etc/sonic.cfg 覆盖默认配置,配置项参考 Sonic 官方文档。1491 端口,需通过 -p 1491:1491 映射到宿主机以对外提供服务。如需基于源码构建自定义版本的 archivebox/sonic 镜像,可使用以下命令(需安装 Docker Buildx):
bash# 克隆 ArchiveBox 仓库(或创建独立目录) cd ArchiveBox/ # 或其他工作目录 # 创建镜像构建文件(内容见下方「构建信息」中的 Dockerfile) nano Dockerfile # 多架构构建并推送到镜像仓库 docker buildx build \ --platform "linux/amd64,linux/arm64" \ --push . \ -t your-registry/sonic:1.4.9 \ # 替换为自定义标签 -t your-registry/sonic:latest
archivebox/sonic 镜像的构建 Dockerfile 如下:
dockerfileFROM rust:slim-bookworm ARG TARGETPLATFORM ARG TARGETOS ARG TARGETARCH ARG TARGETVARIANT RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=apt-$TARGETARCH$TARGETVARIANT \ --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked,id=cargoreg-$TARGETARCH$TARGETVARIANT \ --mount=type=cache,target=/usr/local/cargo/git,sharing=locked,id=cargogit-$TARGETARCH$TARGETVARIANT \ --mount=type=cache,target=/app,sharing=locked,id=sonicgit-$TARGETARCH$TARGETVARIANT \ # 安装构建依赖 apt-get update -qq \ && apt-get install -qq -y build-essential clang git \ && rustup component add rustfmt \ && rustc --version \ && rustup --version \ && cargo --version \ && mkdir -p /app \ # 更新或克隆 Sonic 源码 && ((cd /app/sonic && git pull) || (git clone [***] /app/sonic)) \ && cd /app/sonic \ # 编译 Sonic 二进制文件 && cargo clean \ && cargo build --release --target "$(uname -m)"-unknown-linux-gnu \ && strip "/app/sonic/target/$(uname -m)-unknown-linux-gnu/release/sonic" \ && mv "/app/sonic/target/$(uname -m)-unknown-linux-gnu/release/sonic" /usr/local/bin/sonic \ # 清理构建依赖 && apt-get purge -qq -y build-essential clang git \ && apt-get autoremove -qq -y \ && rm -rf /var/lib/apt/lists/* \ # 验证二进制文件 && /usr/local/bin/sonic --version # 复制默认配置文件 COPY etc/sonic.cfg /etc/sonic.cfg # 启动命令 CMD [ "/usr/local/bin/sonic", "-c", "/etc/sonic.cfg" ] # 暴露默认端口 EXPOSE 1491
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务