Hi Jeet,
In the past that kind of problems have been related to AVX support. In Annif the (prebuilt) TensorFlow library used by the NN ensemble backend needs some AVX functionality, and if AVX is not available, running any Annif command just outputs the "Illegal instruction (core dumped)" error.
AVX support might be missing from your computer's CPU, if it is an older one. But you said you have been using Annif for some time on your Linux system, so I suppose that is not the problem. Or could it be that you have been using Annif for so long that you have installed a version older than 0.43, which is the version where NN ensemble was introduced; what does the command "pip list | grep annif" show? (A bit confusingly "annif --version" does not give the version of Annif.)
You can check whether AVX support is available (
https://stackoverflow.com/a/37480136) with the command
"grep avx /proc/cpuinfo"
In the case that the AVX support is missing only from within Docker containers, and if you happen to have configured some virtualization software like VirtualBox, I think the virtualization and Docker could some way interfere with each other. At least for Windows that happens, you can check the troubleshooting at
https://github.com/NatLibFi/Annif-tutorial/blob/master/exercises/01_install_annif.md#11-virtualbox-based-install Is your Linux system a native installation or running on some virtual machine?
In any case, if the lack of the AVX support is the problem, and you don't need the NN ensemble backend, a workaround is to uninstall TensorFlow, but to do that in Docker you need be the root user, so first start a container with
and then do the uninstallation with
"pip uninstall tensorflow-cpu -y"
If the workaround is feasible to you, you could consider building a Docker image without TensorFlow from your own Dockerfile, where there is just one RUN statement where the uninstallation is done, see e.g.
https://github.com/NatLibFi/Annif-tutorial/blob/master/Dockerfile#L15. With the prebuilt Docker image provided via
quay.io the uninstallation needs to be done every time a container is started.
Best regards,
-Juho