Контейнер RHEL 8 MSSQL ODBC Driver e2fsprogs

Я пытаюсь создать собственный контейнер докеров с помощью RHEL 8 UBI. В рамках этого я хочу установить драйвер ODBC MSSQL 17. Я выполнил шаги, описанные в документации Microsoft здесь:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

И добавил репозиторий Microsoft в мой yum.repos.d однако, когда я пытаюсь создать контейнер, я получаю следующую ошибку: nothing provides e2fsprogs needed by msodbcsql17-17.6.1.1-1.x86_64

Когда я немного углубился в это, похоже, что для RHEL-7 Microsoft предлагает установить e2fsprogs вручную, вы можете увидеть это здесь:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

К сожалению, это невозможно в RHEL-8, так как e2fsprogs-static удален: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/considerations_in_adopting_rhel_8/index

Полный вывод сборки:

$  docker build -f ./test.dockerfile -t daark:1 .
Sending build context to Docker daemon  25.77MB
Step 1/7 : FROM registry.redhat.io/ubi8/ubi
 ---> a1f8c9699786
Step 2/7 : RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
 ---> Using cache
 ---> 90b3e1514239
Step 3/7 : RUN yum search odbc
 ---> Using cache
 ---> b26f78d0da28
Step 4/7 : RUN yum search msodbcsql17
 ---> Using cache
 ---> c6f7751b97dc
Step 5/7 : ENV ACCEPT_EULA=Y
 ---> Using cache
 ---> 2b0003944673
Step 6/7 : RUN yum install -y unixODBC unixODBC-devel
 ---> Using cache
 ---> 1d0b8c594905
Step 7/7 : RUN yum install -y msodbcsql17
 ---> Running in 67c30e75fb42
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:08:11 ago on Wed Aug  5 09:36:32 2020.
Error:
 Problem: cannot install the best candidate for the job
  - nothing provides e2fsprogs needed by msodbcsql17-17.6.1.1-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
The command '/bin/sh -c yum install -y msodbcsql17' returned a non-zero code: 1

Эта ошибка довольно воспроизводима, вот тестовый файл докеров, который я использую для отладки


FROM registry.redhat.io/ubi8/ubi
RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum search odbc
RUN yum search msodbcsql17
ENV ACCEPT_EULA=Y
RUN yum install -y unixODBC unixODBC-devel 
RUN yum install -y msodbcsql17

Кому-нибудь удалось установить этот драйвер ODBC на контейнер на основе RHEL 8 UBI?

4 ответа

Решение

Я нашел работу, которая, надеюсь, поможет следующему человеку ударить по ней. Вместо того, чтобы бегатьyum install -y msodbcsql17 Вместо этого я использовал yum для загрузки RPMyum download -y msodbcsql17затем использовал rpm -Uvh --nodeps msodbcsql17*rpm установить его.

Вы можете использовать этот файл докера:

FROM registry.redhat.io/ubi8/ubi
RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum search odbc
RUN yum search msodbcsql17
ENV ACCEPT_EULA=Y
RUN yum install -y unixODBC unixODBC-devel 
RUN yum download -y msodbcsql17
RUN rpm -Uvh --nodeps msodbcsql17*rpm

@daark thank you for posting your solution. Your solution got me over the problem I was facing. I ended modifying your solution to the following (in case it helps anyone else):

      FROM registry.access.redhat.com/ubi8/python-38

USER root
RUN yum update --assumeyes && \
  yum install --assumeyes \
    unixODBC-devel \
  && yum clean all

RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum download -y msodbcsql17
RUN ACCEPT_EULA=y rpm -Uvh --nodeps msodbcsql17*rpm

I tried to add this to the @daark's solution as a comment, but it was too difficult to display the code properly.

Good luck to anyone else facing this issue 🍀

Последний выпуск msodbcsql17 устраняет эту проблему. Шаги документации снова работают гладко. См. Проблему с документами

Я могу подтвердить, что установка на redhat/ubi8 работает с msodbcsql17-17.8.1.2-1.x86_64.rpm.

      FROM redhat/ubi8 
COPY msodbcsql17-17.8.1.2-1.x86_64.rpm /tmp 
RUN MSSQL_PID=Developer ACCEPT_EULA=Y yum -y localinstall /tmp/msodbcsql17-17.8.1.2-1.x86_64.rpm; rm /tmp/msodbcsql17-17.8.1.2-1.x86_64.rpm
Другие вопросы по тегам