일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오블완
- ethers websocket
- Vue
- 체인의정석
- 러스트기초
- ethers type
- 스마트 컨트렉트 함수이름 중복
- 러스트 기초 학습
- ethers
- ethers v6
- 티스토리챌린지
- 스마트컨트렉트 예약어 함수이름 중복
- rust 기초
- Vue.js
- 머신러닝기초
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트테스트
- vue기초
- multicall
- chainlink 설명
- git rebase
- 프록시배포구조
- 컨트렉트 동일한 함수이름 호출
- 컨트렉트 배포 자동화
- nest.js설명
- 러스트 기초
- ambiguous function description
- 스마트컨트렉트프록시
- SBT표준
- ethers typescript
- Today
- Total
체인의정석
Mac OS , docker & oracle 사용하기 (1) 본문
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랑 연결도 되었지만 막상 노드를 띄워놓으니 노드와 같이 사용한 오라클 클라이언트 라이브러리가 없기 때문이였다.!
근데 다시 보니 위 예제는 리눅스 환경이였다.
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
- Run SQL*Plus and connect using your database credentials and connection string: sqlplus hr/welcome@localhost/orclpdb
- 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
근데 또 안된다..
(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
위의 과정에서 로컬에 설치하는것 까지 하고 그걸 도커로 옮기는 방법으로 시도해보기로 하였다.
그것은 다음글에
'개발 > docker & linux' 카테고리의 다른 글
mac docker & docker compose 설치 (0) | 2022.11.01 |
---|---|
Mac OS , docker & oracle 사용하기 (2) (0) | 2021.08.24 |
mac terminal 압축파일 관련 명령어 (0) | 2021.08.23 |
운영체제, 터미널의 구조와 그에 따른 환경 변수의 설정 (direnv 사용) (0) | 2021.08.18 |
docker에 DB 설치하기 (3) - postgreSQL (0) | 2021.08.12 |