Установите клиент oracle в контейнер докеров

Я использую alpine linux в качестве базового образа, и мне нужно установить собственную клиентскую библиотеку oracle. Думаю, вы можете скачать отсюда:

https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

  1. похоже, мне нужно войти в систему, чтобы загрузить, кто-нибудь знает, как загрузить zip-файл клиентской библиотеки без входа в систему?

  2. кто-нибудь знает, как правильно установить клиентскую библиотеку в bash-скрипте или dockerfile?


person Community    schedule 26.04.2019    source источник
comment
К сведению, недавние мгновенные клиенты могут быть загружены без входа в систему или без перехода.   -  person Christopher Jones    schedule 30.01.2020


Ответы (3)


Я придумал другой способ установить мгновенный клиент Oracle в ubuntu Docker, это может помочь другим

Следуйте этим простым шагам:

  1. Загрузите мгновенный клиент oracle (.rpm файл) со страницы oracle официальный центр загрузки

  2. Преобразуйте в .deb (вы можете использовать apt-get install alien) и переместите куда-нибудь в ваш рабочий каталог.

  3. Теперь обновите свой Dockerfile и сделайте сборку

    RUN apt-get update
    WORKDIR /opt
    ADD ./ORACLE-INSTANT-CLIENT.deb  /opt
    #if libaio also required
    RUN apt-get install libaio1 
    RUN dpkg -i oracle-instantclient.deb
    
person Mohammad Sayeed    schedule 03.10.2019

Вот рабочее решение для официальных образов PHP-FPM на основе Debian 10 (Buster). Следующий Dockerfile устанавливает Oracle Instant Client 18.5 (basiclite и devel) с использованием пакетов RPM и alien.

Как писал Кристофер Джонс, в настоящее время файлы можно загружать без учетной записи Oracle.

FROM php:7.2.32-fpm

# see https://help.ubuntu.com/community/Oracle%20Instant%20Client
RUN apt-get update && apt-get install -y --no-install-recommends alien libaio1 wget && \
    wget https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-basiclite-18.5.0.0.0-3.x86_64.rpm && \
    wget https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm && \
    alien -i oracle-instantclient18.5-basiclite-18.5.0.0.0-3.x86_64.rpm && \
    alien -i oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm
ENV LD_LIBRARY_PATH="/usr/lib/oracle/18.5/client64/lib:${LD_LIBRARY_PATH}"
person Marcel Pfeiffer    schedule 12.08.2020
comment
Я думал, что alien преобразовал сценарий постинсталляции ldconfig пакета RPM. Если он его преобразует, вам не нужно устанавливать LD_LIBRARY_PATH (теперь вы можете получить 19.8, который подключается к тем же версиям БД, что и 18) - person Christopher Jones; 13.08.2020

Вы не хотите использовать Alpine Linux, так как вам нужно будет его взломать, и он может стать нестабильным. Дополнительные комментарии см. В https://stackoverflow.com/a/53291026/4799035.

См. Также https://github.com/oracle/docker-images/blob/master/OracleInstantClient/dockerfiles/19/Dockerfile, который не требует входа в систему.

Таким образом, в Oracle Linux 7:

yum -y install oracle-release-el7
yum -y install oracle-instantclient19.3-basic && rm -rf /var/cache/yum
person Christopher Jones    schedule 04.06.2019
comment
docker pull container-registry.oracle.com/database/instantclient:latest не работает. Пожалуйста, обновите его. - person Davood Falahati; 21.12.2020
comment
Используйте файлы Dockerfiles и настройте их под свои нужды. - person Christopher Jones; 22.12.2020