2022年10月18日 星期二

安裝有 full-text search 功能的 mssql Docker container

如果有使用 mssql 官方的 Docker image 的話,
會發現並沒有預設安裝 Full-Text Search 功能 (可以提供 contains({columnName}, {containsValue}) 等語法),
這時候就要進入 mssql 的 Docker container 手動下指令進行安裝,
或是直接修改 Dockerfile 在裡面寫上安裝 Full-Text Search 功能的指令。

以下分享如何進行 MS Sql Full-Text Search 功能的安裝,
首先可以先用以下 Sql 指令判斷有無已安裝了 Full-Text Search

select FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')

如果查詢結果是 1 就是有安裝,否則就是 0 代表沒安裝。

接著修改 Dockerfile 如下所示:

FROM mcr.microsoft.com/mssql/server:2019-latest

USER root

RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update --fix-missing && \
apt-get install -y gnupg2 && \
apt-get install -yq curl apt-transport-https && \
curl https://packages.microsoft.com/keys/microsoft.asc | tac | tac | apt-key add - && \
curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list | tac | tac | tee /etc/apt/sources.list.d/mssql-server.list && \
apt-get update

RUN apt-get install -y mssql-server-fts

CMD /opt/mssql/bin/sqlservr

EXPOSE 1433

就可以成功安裝 Full-Text Search 了

參考資料:

  1. Issue Full-Text Search is not installed, or a full-text component cannot be loaded. on windows container #161
  2. How to detect if full text search is installed in SQL Server
  3. 適用于 Microsoft 產品的 Linux 軟體存放庫

沒有留言 :

張貼留言