I found a related issue on github but it is under the msphpsql repo so I'm not sure if it applies to the driver in general for alpine. It says MS does not support yet.
Official MS installation page has installation instructions only for Debian, RedHat, SUSE, Ubuntu.
If there are any workarounds, please suggest.
If this is not possible, please elaborate your answer as technically as possible. I could not find a suitable answer for this question anywhere.
msodbcsql. h is installed in /opt/microsoft/msodbcsql17/include/ for Driver 17 and in /opt/microsoft/msodbcsql/include/ for Driver 13. The text file that contains the terms of the End-User License Agreement. This file is placed in /usr/share/doc/msodbcsql17/ for Driver 17 and in /usr/share/doc/msodbcsql/ for Driver 13.
To verify whether unixODBC is installed in the system, you can run the commands which odbcinst and which isql, which should return the path to the corresponding tools, or just run isql, which should print the syntax and available options for the isql utility.
UnixODBC consists of a lot of libraries, installed in /usr/local/lib, and a few executable files (binaries) installed into /usr/local/bin.
This is the Dockerfile
I've tested.
FROM alpine
# Install dependencies
RUN apk --no-cache add curl gnupg
# Download the desired package(s)
RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.6.1.1-1_amd64.apk
RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.6.1.1-1_amd64.apk
# (Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.6.1.1-1_amd64.sig
RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.6.1.1-1_amd64.sig
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
RUN gpg --verify msodbcsql17_17.6.1.1-1_amd64.sig msodbcsql17_17.6.1.1-1_amd64.apk
RUN gpg --verify mssql-tools_17.6.1.1-1_amd64.sig mssql-tools_17.6.1.1-1_amd64.apk
# Install the package(s)
RUN apk add --allow-untrusted msodbcsql17_17.6.1.1-1_amd64.apk
RUN apk add --allow-untrusted mssql-tools_17.6.1.1-1_amd64.apk
and this is the log I got,
Sending build context to Docker daemon 2.174MB
Step 1/11 : FROM alpine
---> a24bb4013296
Step 2/11 : RUN apk --no-cache add curl gnupg
---> Running in d4f7b3b86157
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/32) Installing ca-certificates (20191127-r4)
(2/32) Installing nghttp2-libs (1.41.0-r0)
(3/32) Installing libcurl (7.69.1-r0)
(4/32) Installing curl (7.69.1-r0)
(5/32) Installing libgpg-error (1.37-r0)
(6/32) Installing libassuan (2.5.3-r0)
(7/32) Installing libcap (2.27-r0)
(8/32) Installing libffi (3.3-r2)
(9/32) Installing libintl (0.20.2-r0)
(10/32) Installing libblkid (2.35.2-r0)
(11/32) Installing libmount (2.35.2-r0)
(12/32) Installing pcre (8.44-r0)
(13/32) Installing glib (2.64.4-r0)
(14/32) Installing ncurses-terminfo-base (6.2_p20200523-r0)
(15/32) Installing ncurses-libs (6.2_p20200523-r0)
(16/32) Installing libgcrypt (1.8.5-r0)
(17/32) Installing libsecret (0.20.3-r0)
(18/32) Installing pinentry (1.1.0-r2)
Executing pinentry-1.1.0-r2.post-install
(19/32) Installing libbz2 (1.0.8-r1)
(20/32) Installing gmp (6.2.0-r0)
(21/32) Installing nettle (3.5.1-r1)
(22/32) Installing p11-kit (0.23.20-r5)
(23/32) Installing libtasn1 (4.16.0-r1)
(24/32) Installing libunistring (0.9.10-r0)
(25/32) Installing gnutls (3.6.14-r0)
(26/32) Installing libksba (1.4.0-r0)
(27/32) Installing db (5.3.28-r1)
(28/32) Installing libsasl (2.1.27-r6)
(29/32) Installing libldap (2.4.50-r0)
(30/32) Installing npth (1.6-r0)
(31/32) Installing sqlite-libs (3.32.1-r0)
(32/32) Installing gnupg (2.2.20-r0)
Executing busybox-1.31.1-r16.trigger
Executing ca-certificates-20191127-r4.trigger
OK: 27 MiB in 46 packages
Removing intermediate container d4f7b3b86157
---> f874be62c59e
Step 3/11 : RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.6.1.1-1_amd64.apk
---> Running in 264bf790ce99
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 923k 100 923k 0 0 21.9M 0 --:--:-- --:--:-- --:--:-- 21.9M
Removing intermediate container 264bf790ce99
---> cb999aaac06f
Step 4/11 : RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.6.1.1-1_amd64.apk
---> Running in 7fe887056e7e
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 304k 100 304k 0 0 8236k 0 --:--:-- --:--:-- --:--:-- 8236k
Removing intermediate container 7fe887056e7e
---> 07885ffff557
Step 5/11 : RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.6.1.1-1_amd64.sig
---> Running in efb39bbe31a7
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 481 100 481 0 0 17178 0 --:--:-- --:--:-- --:--:-- 17178
Removing intermediate container efb39bbe31a7
---> 0b47b4bdc30d
Step 6/11 : RUN curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.6.1.1-1_amd64.sig
---> Running in 08a264662da9
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 481 100 481 0 0 16033 0 --:--:-- --:--:-- --:--:-- 16033
Removing intermediate container 08a264662da9
---> dad9d122c7ae
Step 7/11 : RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
---> Running in ab82306e09cf
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 983 100 983 0 0 1386 0 --:--:-- --:--:-- --:--:-- 1386
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key EB3E94ADBE1229CF: public key "Microsoft (Release signing) <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
Removing intermediate container ab82306e09cf
---> 3a524358b99f
Step 8/11 : RUN gpg --verify msodbcsql17_17.6.1.1-1_amd64.sig msodbcsql17_17.6.1.1-1_amd64.apk
---> Running in 0621d8db0ef8
gpg: Signature made Tue Jul 7 21:23:47 2020 UTC
gpg: using RSA key EB3E94ADBE1229CF
gpg: Good signature from "Microsoft (Release signing) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: BC52 8686 B50D 79E3 39D3 721C EB3E 94AD BE12 29CF
Removing intermediate container 0621d8db0ef8
---> 5e4b528817f0
Step 9/11 : RUN gpg --verify mssql-tools_17.6.1.1-1_amd64.sig mssql-tools_17.6.1.1-1_amd64.apk
---> Running in 8a51c0d21e7e
gpg: Signature made Mon Jul 6 18:59:24 2020 UTC
gpg: using RSA key EB3E94ADBE1229CF
gpg: Good signature from "Microsoft (Release signing) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: BC52 8686 B50D 79E3 39D3 721C EB3E 94AD BE12 29CF
Removing intermediate container 8a51c0d21e7e
---> a06ecc7c2031
Step 10/11 : RUN apk add --allow-untrusted msodbcsql17_17.6.1.1-1_amd64.apk
---> Running in 8f5c10bfb5ea
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/11) Installing krb5-conf (1.0-r2)
(2/11) Installing libcom_err (1.45.6-r0)
(3/11) Installing keyutils-libs (1.6.1-r1)
(4/11) Installing libverto (0.3.1-r1)
(5/11) Installing krb5-libs (1.18.2-r0)
(6/11) Installing libgcc (9.3.0-r2)
(7/11) Installing libstdc++ (9.3.0-r2)
(8/11) Installing openssl (1.1.1g-r0)
(9/11) Installing readline (8.0.4-r0)
(10/11) Installing unixodbc (2.3.7-r2)
(11/11) Installing msodbcsql17 (17.6.1.1)
Executing msodbcsql17-17.6.1.1.pre-install
Using this product constitutes agreement with the
End User License, which can be downloaded from
https://aka.ms/odbc17eula and found in
/usr/share/doc/msodbcsql17/LICENSE.txt .
If you do not agree with the terms, please uninstall
the product by typing 'apk del msodbcsql17'
Executing msodbcsql17-17.6.1.1.post-install
Executing busybox-1.31.1-r16.trigger
OK: 186 MiB in 57 packages
Removing intermediate container 8f5c10bfb5ea
---> 3e449c097c43
Step 11/11 : RUN apk add --allow-untrusted mssql-tools_17.6.1.1-1_amd64.apk
---> Running in 889ede754d73
(1/1) Installing mssql-tools (17.6.1.1)
Executing mssql-tools-17.6.1.1.pre-install
Using this product constitutes agreement with the
End User License, which can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt .
If you do not agree with the terms, please uninstall
the product by typing 'apk del mssql-tools'
OK: 340 MiB in 58 packages
Removing intermediate container 889ede754d73
---> 0141e9b50f20
Successfully built 0141e9b50f20
Successfully tagged microsoft_odbc_17_alpine:latest
I hope this will solve you problem. You can find all the versions such as Alpine Linux, Debian, Red Hat Enterprise Server and Oracle Linux, SUSE Linux Enterprise Server and Ubuntu as well as you can also find Previous versions installation details from Install the Microsoft ODBC driver for SQL Server (Linux) article.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With