cytopia / cytopia/devilbox

[Docs]: sqlsrv with new arm64 (Apple M1/M2)

Open
#1,006 0 comments 1 reaction 1 assignee Claimed by @cytopia View on GitHub
documentation
Dominant language
PHP
Stars
4.5k
Forks
652
PR merge metrics
No merged PRs in 30d

Description

### What is wrong in the documentation?

_No response_

### What is missing in the documentation?

Hello @cytopia ,

After updating my docker and my devilbox, I launched my new containers with PHP8.1 and put the script for the mssql obc driver put I've got an error when trying to connect to my database :

`Unsupported processor architecture`

After looking some issues on google, I find that the default script use debian 9 version and the amd64.deb version of msodbcsql.

With some updates on the script, it's now working !

Before launch this script, you have to check the debian version of your container (if you use debian, not alpine of course).

```shell
cat /etc/os-release
```

Example of my return :

```shell
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```

And second point, check the version of which version of the driver you want (for me le last one for now).

Here the compete script :

```shell
#!/bin/bash
#
# This script will automatically install the Microsoft ODBC driver for MsSQL
# support for PHP during startup.
#
# In order for it to work, you must read and accept their License/EULA:
# https://odbceula.blob.core.windows.net/eula17/LICENSE172.TXT
#

# ------------------------------------------------------------------------------------------------
# EDIT THE VARIABLE BELOW TO ACCEPT THE EULA (If you agree to their terms)
# ------------------------------------------------------------------------------------------------

###
### Set this to "Y" (capital 'Y') if you accept the EULA.
###
ACCEPT_EULA=Y

# ------------------------------------------------------------------------------------------------
# DO NOT EDIT BELOW THIS LINE
# ------------------------------------------------------------------------------------------------

###
### Where to retrieve the deb package
###
MSODBC_URL="https://packages.microsoft.com/debian/11/prod/pool/main/m/msodbcsql18/"

###
### Pre-flight check
###
if [ "${#}" = "1" ]; then
if [ "${1}" = "ACCEPT_EULA=1" ]; then
ACCEPT_EULA=Y
fi
fi
if [ "${ACCEPT_EULA}" != "Y" ]; then
echo "MS ODBC EULA not accepted. Aborting installation."
exit 0
fi

###
### EULA accepted, so we can proceed
###

# Extract latest *.deb packate
MSODBC_DEB="$( curl -k -sS "${MSODBC_URL}" | grep -Eo 'msodbcsql[-._0-9]+?_arm64\.deb' | tail -1 )"

# Download to temporary location
curl -k -sS "${MSODBC_URL}${MSODBC_DEB}" > "/tmp/${MSODBC_DEB}"

# Install
ACCEPT_EULA="${ACCEPT_EULA}" dpkg -i "/tmp/${MSODBC_DEB}"

# Remove artifacts
rm -f "/tmp/${MSODBC_DEB}"

```

If that can help someone ;)

### Are you willing to provide a PR to address this?

None

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.