source

도커 컨테이너에 오라클 클라이언트 설치

ittop 2023. 8. 10. 21:26
반응형

도커 컨테이너에 오라클 클라이언트 설치

알파인 리눅스를 기본 이미지로 사용하고 있는데 오라클 클라이언트 네이티브 라이브러리를 설치해야 합니다.여기에서 다운로드할 수 있습니다.

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

  1. 다운로드하려면 로그인해야 할 것 같은데, 로그인 없이 클라이언트 lib의 zip 파일을 다운로드하는 방법을 아는 사람이 있습니까?

  2. bash 스크립트나 도커 파일에 클라이언트 라이브러리를 제대로 설치하는 방법을 아는 사람?

Oracle 인스턴트 클라이언트를 설치하는 다른 방법을 알아냈습니다.ubuntu도커, 다른 사람들에게 도움이 될 수도 있습니다.

다음과 같은 간단한 단계를 수행합니다.

  1. Oracle 인스턴트 클라이언트 다운로드(.rpm파일) 오라클 공식 다운로드 센터에서

  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
    

Debian 10(Buster) 기반의 공식 PHP-FPM 이미지를 위한 작업 솔루션입니다.다음과 같은 것들DockerfileRPM 패키지를 사용하여 Oracle Instant Client 18.5(basiclitedevelop)를 설치합니다.alien.

Christopher Jones가 썼듯이 파일은 현재 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}"

런타임에 오라클을 다운로드하려면 다음 명령을 실행할 수 있습니다.

FROM ruby:3.0


ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_21_4

RUN apt-get update && \
    apt-get install -y libpq-dev zlib1g-dev build-essential shared-mime-info libaio1 libaio-dev unzip wget --no-install-recommends && \
    wget https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-sdk-linux.x64-21.4.0.0.0dbru.zip && \
    wget https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-sqlplus-linux.x64-21.4.0.0.0dbru.zip && \
    wget https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip && \
    mkdir -p /opt/oracle && \
    cp instantclient-* /opt/oracle/ && \
    cd /opt/oracle/ && \
    unzip instantclient-basic-linux.x64-21.4.0.0.0dbru.zip && \
    unzip instantclient-sdk-linux.x64-21.4.0.0.0dbru.zip && \
    unzip instantclient-sqlplus-linux.x64-21.4.0.0.0dbru.zip && \
    rm -rf /var/lib/apt/lists/* instantclient-basic-linux.x64-21.4.0.0.0dbru.zip instantclient-sdk-linux.x64-21.4.0.0.0dbru.zip instantclient-sqlplus-linux.x64-21.4.0.0.0dbru.zip && \
    apt -y clean && \
    apt -y remove wget unzip && \
    apt -y autoremove && \
    rm -rf /var/cache/apt

위의 버전을 지정하여 인스턴트 클라이언트의 특정 버전을 다운로드할 수 있습니다.

Ruby on Rails 애플리케이션을 사용하는 경우 이 두 패키지는 Ruby-oci에 필요합니다.

libaio1

libaio-dev

알파인 리눅스는 해킹해야 하고 불안정해질 수 있기 때문에 사용하고 싶지 않을 것입니다.더 많은 의견은 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

업데이트: Oracle은 https://github.com/oracle/docker-images/pkgs/container/oraclelinux7-instantclient 및 https://github.com/oracle/docker-images/pkgs/container/oraclelinux8-instantclient 에 다음과 같이 Docker 이미지를 제공합니다.

docker pull ghcr.io/oracle/oraclelinux7-instantclient:21

그리고.

docker pull ghcr.io/oracle/oraclelinux8-instantclient:21

오라클 공식 성명:Instant Client는 Docker Docker 파일을 GitHub에서 사용할 수 있습니다.사전 빌드된 이미지는 GitHub 컨테이너 레지스트리에서 사용할 수 있습니다.여기: https://www.oracle.com/database/technologies/instant-client.html

언급URL : https://stackoverflow.com/questions/55859245/install-oracle-client-in-docker-container

반응형