在没有 AVX2 的 CPU 上出现非法指令 ( 核心已转储 )。
[~/flowsint] $ grep -c 'NPY_DISABLE' Docker-compose.prod.yml config> /dev/null && echo YAML OK" YAML OK 摘要:flowsint-api生产容器在启动时立即崩溃,在不支持AVX2的CPU上出现"非法指令(核心已丢弃)"。容器永远不会恢复健康,这阻止了celery和app启动(依赖api:condition:service_healthy)。 环境 - OS:Kali rolling 26.3 - Docker:28.5.2+dfsg4(Debian包Docker.io) - git:2.53.0 - GNU Make:4.4.1 - CPU:x86_64(不支持AVX2) - 'grep -o 'avx2' /proc/cpuinfo | head -l' => 空。 - 'grep -o -ml 'abx[^ ]*' /proc/cpuinfo | sort -u' => 没有AVX标志。 安装路径:'~/flowsint' 安装方法:'git clone https://guthub.com/reconurge/flowsint.git && cd flowsint && make prod' 可复现步骤 1. 在CPU不支持AVX2的主机上(裸机或使用不通过AVX2的CPU类型的VM,例如QEMU/KVM'qemu64')。 2. 克隆仓库并运行: 'bash git clone https://GitHub.com/reconurge/flowsint.git cd flowsint make prod' 实际行为:'flowsint-api-prod'无法启动。无休止的重启循环,退出代码为132: flowsint-api-prod | running database migrationss... flowsint-api-prod | illegal instructions (core dumped) flowsint-api-prod以132退出(重启) 文本: - 'postgres' 'Redis' 'neo4j'恢复健康 - 只有API没有。 这阻止了celery和app启动(它们依赖api:condition:service_healthy)。 *已经尝试* 在Docker-compose.prod.yml中为**api**和**celery**设置相同的NPY_DISABLE_CPU_FEATURES=AVX512F AVX512CD AVX512_SKK FAISS_OPT_LEVEL=o OMP_NUM_THREADS=1 MKL_ENABLE_INSTRUCTIONS=SSE4.2 grep -c NPY_DISABLE => 2,Docker compose config =>YAML OK。 结果:同一个崩溃。 分析 映像中的一个二进制文件(ghcr.io/reconurge/flowsint-api:latest)似乎是用AVX2优化编译的。 我的CPU没有AVX2(grep avx2 /proc/cpuinfo => 空)。env变量无法帮助,因为崩溃发生在Python启动之前。 请求 请使用保守的-march=x86-64-v2基准构建映像,或者发布一个:latest-generic标签。我很乐意测试。
内容来源: reconurge/flowsint