Laravel Sail / Docker - невозможно найти пакет msodbcsql17

Я пытаюсь сделать Laravel Sail Docker совместимым с sqlsrv (MSSQL). Я прошел долгий путь с конфигурацией и получил ее для установки sqlsrv и pdo_sqlsrv. Итак, теперь мне нужно установить msodbcsql17. Для этого я следую руководству Microsoft (https://docs.microsoft.com/nl-nl/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15) для Ubuntu 20.04 (так как это моя версия).

В этой конкретной документации говорится о загрузке и запуске. Переводя это в Sail Dockerfile, эта часть моего Dockerfile выглядит так:

...
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get install -y msodbcsql17 \
...

Так что просто скачайте файл и поместите его в рекомендованное место. Но что бы я ни делал, он всегда возвращается с кодом 100: Unable to locate package msodbcsql17. Итак, я предполагаю, что это местоположение по умолчанию не считывается программой установки apt-get. Любые предложения приветствуются.

Обновление: Итак, благодаря ответу, это решение:

...
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql17 \
&& ACCEPT_EULA=Y apt-get install -y mssql-tools \
...

person Matt    schedule 20.05.2021    source источник


Ответы (1)


По умолчанию у большинства образов докеров есть пустые списки пакетов, чтобы сэкономить на размере образа. Вот почему вам сначала нужно apt-get update. Это не будет обновлять какое-либо программное обеспечение (это будет apt-get upgrade), а просто обновит список пакетов. Эта команда фактически также находится в инструкциях Microsoft, которые вы связали.

person online Thomas    schedule 21.05.2021