체인의정석

Mac OS , docker & oracle 사용하기 (1) 본문

개발/docker & linux

Mac OS , docker & oracle 사용하기 (1)

체인의정석 2021. 8. 24. 15:36
728x90
반응형

https://blogs.oracle.com/opal/docker-for-oracle-database-applications-in-nodejs-and-python-part-1

여기 저기 살펴보다 드디어 신빙성 있어보이는 블로그를 발견했다. 이번엔 제발 되기를

 

이미지 설치 후

$ sudo docker image pull oraclelinux:7-slim

설치된 이미지 확인하기

$ sudo docker images
REPOSITORY           TAG         IMAGE ID        CREATED          SIZE
oraclelinux          7-slim      874477adb545    3 weeks ago      118MB

홈페이지에 있는 그림을 보니 이해가 더 잘갔다.

파이썬 노드 PHP , go , ruby 등등의 표준적인 아키텍쳐들은 Oracle client libraries 가 필요하다고 한다. 내가 계속 에러가 났던 이유는 oracle도 되고 DBeaver랑 연결도 되었지만 막상 노드를 띄워놓으니 노드와 같이 사용한 오라클 클라이언트 라이브러리가 없기 때문이였다.!

근데 다시 보니 위 예제는 리눅스 환경이였다. 

 

https://www.oracle.com/kr/database/technologies/instant-client/macos-intel-x86-downloads.html#ic_osx_inst

Oracle client libraries를 설치하는건 여기 메뉴얼에 따르기로 하였다.

 

나는 라이트 버젼을 다운받아주었다.

 

터미널에서 경로를 하나 만들고 파인더를 열어준다.

(base) lambda256@ethan ~ % mkdir Volumes
(base) lambda256@ethan ~ % cd Volumes
(base) lambda256@ethan Volumes % open .

이제 경로에 압축파일을 넣어주고 dmg 파일을 더블 클릭하여 풀어준다.

 

(base) lambda256@ethan Volumes % ./install_ic.sh
/Users/lambda256/Downloads/instantclient_19_8
Using existing dir: /Users/lambda256/Downloads/instantclient_19_8...
Copying /Volumes/instantclient-basiclite-macos.x64-19.8.0.0.0dbru files ...

스크립트를 실행해서 설치까지 해준다.

 

위 명령어를 실행하면 여태까지 마운트된 인스턴트 client.dmg 패키지를 /User/$USER/Downloads/instantclient_19_8로 복사시켜 준다고 한다.

 

다음으로 파인더에서 instant client packages를 방출 시키면 된다. 이제 필요한 경로로 옮겼으니 필요가 없나 보다.

 

SQL Plus package같이 바이너리를 서치할때 하려면 환경 변수를 업데이트 시켜야 된다고 한다.

(base) lambda256@ethan Volumes % export PATH=~/Downloads/instantclient_19_8:$PATH
  1. Run SQL*Plus and connect using your database credentials and connection string: sqlplus hr/welcome@localhost/orclpdb
  2. Refer to your application's installation instructions for how to use Instant Client with that application.

근데 이렇게 해도 에러가 해결이 안되었다.

 

잘 생각해보니, 지금 오류 메세지가 나는곳은 도커이고, 그럼 도커에다가 저걸 설치해주어야 하는게 아닌가 싶었다. 오류 메세지도 리눅스쪽 다운로드 페이지로 보내주는 것을 보니 도커에다가 클라이언트를 설치해주라는 의미가 아닐까 싶어서 오라클이 있는 도커에 직접 접속해서 시도해보기로 하였다.

 

 

먼저 오라클이 있는 도커에 접속!

(base) lambda256@ethan ~ % docker exec -it oracle bin/bash
root@c025c1e0b2b4:/#

일단 yum 설치

root@c025c1e0b2b4:/# sudo apt update -y
root@c025c1e0b2b4:/# sudo apt install -y yum-utils

그다음으로 클라이언트 yum으로 설치 아래 링크에서 설치 구문을 찾았다.

yum -y install oracle-release-el7
yum -y install oracle-instantclient19.3-basic && rm -rf /var/cache/yum

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

 

Install oracle client in docker container

I am using alpine linux as a base image, and I need to install an oracle client native library. I believe you can download from here: https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.

stackoverflow.com

근데 또 안된다..

(base) lambda256@ethan oracle % docker run ghcr.io/oracle/oraclelinux8-instantclient:21

SQL*Plus: Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

위의 과정에서 로컬에 설치하는것 까지 하고 그걸 도커로 옮기는 방법으로 시도해보기로 하였다.

 

그것은 다음글에

 

 

 

728x90
반응형
Comments