Aspose.OCR no Docker Alpine com .NET 8 - Erro ao carregar 'onnxruntime'

Olá a todos,

Estou com um desafio ao tentar executar uma aplicação .NET 8 com Aspose.OCR em um contêiner Docker.

Nossa equipe tem uma forte preferência por usar imagens Alpine (mcr.microsoft.com/dotnet/aspnet:8.0-alpine) para manter o tamanho final das imagens reduzido.

Ao executar o OCR, encontramos uma System.TypeInitializationException (DllNotFoundException para onnxruntime). O erro específico é __vsnprintf_chk: symbol not found, o que indica a conhecida incompatibilidade entre bibliotecas nativas compiladas para glibc e o ambiente musl do Alpine.

Já estou ciente de que a instalação de uma camada de compatibilidade glibc completa poderia resolver o problema, mas estamos procurando uma solução mais limpa e direta, se possível.

Minha pergunta é: Qual é a abordagem recomendada pela comunidade ou pela Aspose para este cenário?

  1. Existe alguma forma de fazer o Aspose.OCR funcionar de forma confiável no Alpine sem a necessidade de instalar a glibc completa?

  2. A Aspose oferece uma versão da dependência onnxruntime compatível com musl?

  3. Ou, apesar da nossa preferência, a única solução robusta e garantida é migrar para uma imagem baseada em Debian (como mcr.microsoft.com/dotnet/aspnet:8.0)?

Agradeço antecipadamente por qualquer orientação.

@governanca.brasil

Olá!

Entendo que você está enfrentando dificuldades ao usar o Aspose.OCR em um contêiner Docker baseado em Alpine, especialmente devido à incompatibilidade com a biblioteca onnxruntime. Aqui estão algumas considerações e sugestões:

  1. Compatibilidade com Alpine: O Aspose.OCR e suas dependências, como onnxruntime, não são oficialmente suportados em ambientes musl, como o Alpine. A instalação de uma camada de compatibilidade glibc é uma solução comum, mas pode não ser a mais adequada para todos os casos.

  2. Versão compatível: Atualmente, não há informações sobre uma versão do onnxruntime que funcione corretamente em musl. A maioria das bibliotecas nativas é compilada para glibc, o que pode causar problemas de compatibilidade.

  3. Alternativa de imagem: A solução mais recomendada seria migrar para uma imagem baseada em Debian, como mcr.microsoft.com/dotnet/aspnet:8.0. Isso garantirá que todas as dependências nativas funcionem corretamente sem a necessidade de ajustes adicionais.

Se precisar de mais informações ou orientações sobre como proceder, sinta-se à vontade para perguntar!

@governanca.brasil

Infelizmente, o Aspose.OCR para .NET não oferece suporte ao Alpine, pois não existem builds preparados do ONNXRuntime para Alpine, e o Aspose.OCR depende dele. No entanto, registramos um ticket de investigação como OCRNET-1110 em nosso sistema de rastreamento de problemas para análise adicional. Vamos verificar se é possível implementar alguma solução alternativa, mas não podemos prometer nada por enquanto. Informaremos você através deste tópico do fórum assim que tivermos atualizações sobre isso.