alpineでmssql-toolsを使う方法


仕事でDockerImageのサイズダウンを行っていた時、alpineでmssql-toolsがインストールできなくて困ってしまった。
方法を調べる中でGitにソリューションを上げている人がいたので参考にして解決した。
その時の手順を備忘録として残す。

パッケージが公式提供されてないのだ

https://packages.microsoft.com/config/

方法をぐぐる

githubのissuesに現時点(2020/11/6)だとクローズされないけど、Install the Microsoft ODBC driver for SQL Server (Linux)にサンプルがあるので参考にしてねとのこと。

結局どうしたか

issues読み進めるとdbamasterさんがDockerFileのサンプルをgithubに上げてくださっている!素敵
https://github.com/dbamaster/mssql-tools-alpine

以下のインストールコマンド部分を自分のDockerFileの参考にさせてもらった。

インストールしてるコマンド部分抜粋
# Installing system utilities
RUN apk add --no-cache curl gnupg --virtual .build-dependencies -- && \
    # Adding custom MS repository for mssql-tools and msodbcsql
    curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_${MSSQL_VERSION}_amd64.apk && \
    curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_${MSSQL_VERSION}_amd64.apk && \
    # Verifying signature
    curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_${MSSQL_VERSION}_amd64.sig && \
    curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_${MSSQL_VERSION}_amd64.sig && \
    # Importing gpg key
    curl https://packages.microsoft.com/keys/microsoft.asc  | gpg --import - && \
    gpg --verify msodbcsql17_${MSSQL_VERSION}_amd64.sig msodbcsql17_${MSSQL_VERSION}_amd64.apk && \
    gpg --verify mssql-tools_${MSSQL_VERSION}_amd64.sig mssql-tools_${MSSQL_VERSION}_amd64.apk && \
    # Installing packages
    echo y | apk add --allow-untrusted msodbcsql17_${MSSQL_VERSION}_amd64.apk mssql-tools_${MSSQL_VERSION}_amd64.apk && \
    # Deleting packages
    apk del .build-dependencies && rm -f msodbcsql*.sig mssql-tools*.apk

終わり