Docker 鏈接sqlserver時出現en-us is an invalid culture錯誤解決方案

在部署服務到docker的時候出現全球化錯誤

 

 

System . Global ization . Cul tureNotFoundException: Only the invariant culture is supported in globalizat ion- invariant mode. See https: //aka. ms/Globalizat i onInvari antMode for more information. (Parameter 」 name' )
en-us is an invalid culture identifier.

en-us is an invalid culture

全球化不變模式可以在任何作業系統上啟用,但您可能會在docker linux容器和IOT構建中找到它,其中存儲和運行時記憶體大小受到限制。這個問題主要出現在Alpine linux容器上,其中通過刪除ICU庫並將運行時置於固定模式來使本機運行時大小儘可能小。這會導致生成映像變得小而快速,但會使您無法連接到 SQL Server。

可以選擇在鏡像中安裝icu

在Dockerfile中寫入以下命令

 

# Install cultures (same approach as Alpine SDK image)
RUN apk add --no-cache icu-libs

# Disable the invariant mode (set in base image)
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false

另一個解決方案就是不使用Alpine 的鏡像