2017-11-29 2 views
0

나는 Heroku에서 실행되는 NodeJS 서버를 가지고 있으며, Heroku로 푸시 할 때 oracledb 패키지 (https://www.npmjs.com/package/oracledb)를 내 서버의 node_modules에 설치하려고합니다.Heroku NodeJS 서버에 OracleDB NPM 패키지를 어떻게 설치할 수 있습니까?

Heroku로 밀어 넣을 때 oracledb 패키지를 설치하려고하면이 오류가 발생합니다 : "node-oracledb ERR! Error : Oracle 라이브러리 libclntsh.so를 찾을 수 없습니다". https://gist.github.com/AkyunaAkish/89a4283cc2da32e26fece617d4138ce0

가 내가 도움이 될 생각 애드온을 설치하려면이 REPO의 추가 정보를 다음과 같은 시도했지만 그 차이 만들 것 같지 않은 : 나는 Heroku가 푸시에서 점점 오전 전체 오류 출력은 여기에서 볼 수 있습니다 https://github.com/MichaelBuhler/heroku-buildpack-nodejs-oracledb

그런 다음 node-oracledb 저장소에 가서 Linux에서 oracledb를 설치하기위한 지침을 따르려고했습니다. (Heroku를 사용하여 bash를 실행 한 다음 명령을 실행하여) yum을 사용할 수없고 파일 시스템을 읽을 수 없기 때문에 작동하지 않았지만 -만; https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instlinux

heroku 환경에서 oracledb 인스턴스를 호스팅 할 필요가 없습니다. 내 데이터베이스 드라이버를 사용하여 다른 곳에 호스팅되는 원격 oracledb에 연결하려면 node_modules에 패키지를 설치하기 만하면됩니다.

내 요구에 맞게 환경을 설정하는 방법에 대한 제안 사항에 감사드립니다.

FYI : 나는 Heroku 지원을 요청했고 Heroku 지원 정책의 본질에 해당하는 문제가 아니므로 여기 있습니다.

답변

1

나는 같은 방법으로 내 Heroku에도 oracledb를 설치하는 데 문제가있었습니다. 스크립트를 실행하여 인스턴스 라이브러리를 얻는 방법을 포함하여 몇 가지를 변경하고 지금 설치를 성공적으로 마쳤습니다. 제 포크를 여기에서 확인하십시오 : https://github.com/pupostd/heroku-buildpack-nodejs-oracledb.git

+1

이것은 나를 위해 고마워. readme에서 업데이트 된 지침을 따랐습니다. 또한 buildpack을 추가 한 후 서버를 제대로 실행하려면 "web : node ./server/init.js"를 포함하는 Procfile을 추가해야했습니다. 어떤 이유로 든 oracledb의 새 버전이 제대로 실행되지 않아 package-lock.json을 2 + 대신 1.13.1 버전으로 업데이트했습니다. –

+0

node-oracledb v2의 사전 빌드 된 바이너리가 어떤 이유로 든 사용 불가능한 경우, v1 일과 같이 언제나 'oracle/node-oracledb # v2.0.15'를 package.json 종속성으로 사용하여 빌드 할 수 있습니다. –

0

I don't need to host an oracledb instance in my heroku environment

node-oracledb (oracledb로 npm을 통해 설치됨)는 데이터베이스가 아니라 드라이버입니다.

I tried following this repo's readme to install addons that I thought would help but that didn't seem to make a difference

당신은 무엇을하려고 (정확히)와 무슨 일이 있었는지 않았다 (있는 경우 오류, 어느 것)?

yum is not available and the file system is read-only

정말이 사실입니까? 의사에게 가르쳐 주시겠습니까? 어떻게 든 의존성을 가져와야합니다. 여러분이 지적한 "heroku-buildpack-nodejs-oracledb"의 저자는 구조 팩과 함께 Heroku CLI를 사용하면 해결 방법으로 사용할 수 있다고 제안하는 것 같습니다.

해당 buildpack을 사용하는 경우 작성자의 Oracle 종속성 미러를 신뢰하고 있음을 기억하십시오. 의존성을 다운로드하고 자신의 개체 저장소에 안전하게 배치 한 다음 그 개체를 가리 키도록 제안합니다.

+0

oracledb는 내가 설치하려고하는 드라이버입니다. 레포 : https://github.com/MichaelBuhler/heroku-buildpack-nodejs-oracledb buildpack 명령을 실행하고 제안 된 파일 내용으로 Aptfile을 작성했습니다. 그 빌드 팩과 그 파일을 heroku 프로젝트에 추가 한 후, 코드를 푸는 경우, github gist에서 보여준 것과 동일한 오류가 다시 발생하여 개선되지 않았습니다. yum 명령을 사용하여 oracle 클라이언트를 얻으려고 시도하면 yum이 명령이 아니며 heroku bash에서 새 디렉토리를 작성하려고 시도하면 읽기 전용 오류가 발생합니다. –

+0

보안 환경에서 종속성을 다운로드하고 환경 변수를 사용하여 언급 한 것처럼 가리킬 것입니다. –

+0

첫 번째 빌드 팩은 heroku-buildpack-apt입니다. apt는 특정 Linux 배포판에 대한 yum의 대안입니다. libaio를 설치하기 위해이 파일을 사용해야 할 수도 있습니다. 두 번째 빌드 팩인 heroku-buildpack-nodejs-oracledb는 자신의 파일로 사용자 정의해야하는 빌드 팩입니다. –

관련 문제