docker-omnidb icon indicating copy to clipboard operation
docker-omnidb copied to clipboard

Can't logging into Oracle DB

Open anubischpc opened this issue 5 years ago • 6 comments

Hi,

I try ur Docker file to manage my Oracle Database and there's an error message

image

Plis ur help, i want to try this amazing management in my oracle's databases~

anubischpc avatar May 29 '19 22:05 anubischpc

Hi @anubischpc,

Could you please include the specific version of your db so I can try it out locally. The error indicates that some kind of Oracle Client library is missing from the docker container.

Once I know the database info I can try these instructions on installing the Oracle Instant Client.

If you are up for it then you can also try fixing this issue yourself and submitting a PR. I am happy to help you with the PR in any way.

taivokasper avatar Jun 02 '19 13:06 taivokasper

Hi @taivokasper

My oracle db version is 11.2.0

I appreciate very much ur time and be waiting for ur response.

anubischpc avatar Jun 03 '19 17:06 anubischpc

Hi @anubischpc ,

Searching on the OmniDB project, I found 2 issues related to the problem you are encountering:

  • https://github.com/OmniDB/OmniDB/issues/469
  • https://github.com/OmniDB/OmniDB/issues/473

As @taivokasper explained in a message: In order to use connection to ORACLE database, ORACLE instant client needs to be installed using the procedure described here. This procedure isn't realized while building the current container image.

@taivokasper, I was wondering if omnidb plugin should be added to the container image, the same question occurs for ORACLE client.

Or is it possible to consider a modular approach?

thomasboussekey avatar Jun 06 '19 06:06 thomasboussekey

Hi,

Getting Oracle Instant Client installed on Alpine linux is a lost cause. I will end up installing the whole world with no success. I believe any other distribution is better suited for this.

I did get connecting to Oracle database working by using the following Dockerfile based on debian:

FROM debian:stretch-slim

MAINTAINER Taivo Käsper <[email protected]>

ENV OMNIDB_VERSION 2.15.0

RUN apt-get update \
      && apt-get install -y curl unzip make build-essential python3-pip libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils \
      && curl -Lo /tmp/OmniDB.zip https://github.com/OmniDB/OmniDB/archive/${OMNIDB_VERSION}.zip \
      && unzip /tmp/OmniDB.zip -d /opt/ \
      && rm -f /tmp/OmniDB.zip \
      && mkdir /etc/omnidb

RUN cd /opt/OmniDB-${OMNIDB_VERSION} && pip3 install --upgrade pip==9.0.3 && echo "Begin install cherrypy" && pip3 install cherrypy && echo "Begin install requirements" && pip3 install -r requirements.txt

RUN curl "https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basiclite-linux.x64-18.3.0.0.0dbru.zip" -o /tmp/oracle-instantclient-basiclite.zip \
      && mkdir /oracle-instant-client \
      && unzip /tmp/oracle-instantclient-basiclite.zip -d /oracle-instant-client

ENV LD_LIBRARY_PATH /oracle-instant-client/instantclient_18_3

USER omnidb

EXPOSE 8080 25482

WORKDIR /opt/OmniDB-${OMNIDB_VERSION}/OmniDB

ENTRYPOINT ["python3", "omnidb-server.py", "--host=0.0.0.0", "--port=8080", "-d", "/etc/omnidb"]

@thomasboussekey you raise a good question regarding Omnidb plugin and Oracle Instant Client. On one side installing all plugins and extra software to single Docker image would be the most convenient for me and people using the image. On the other hand this would make the image significantly bigger and more bloated. Having "modular" image with tag for every extra would make it a tag nightmare for me and users and would not solve the case where you need two or more plugins enabled in Omnidb. If you know any Docker images that have solved similar case and has good best practices then let me know.

I have 3 solutions to this issue:

  1. I do nothing and don't preinstall Oracle Instant Client or Omnidb plugins
  2. I install Oracle Instant Client and Omnidb plugins all to a single Docker image
  3. I have a docker tag for base Omnidb installation and based on that image I create more images with docker tag per extra software.

@anubischpc and @thomasboussekey which do you think is the best solution for this issue, question about Omnidb plugins and similar issues in the future?

taivokasper avatar Jun 06 '19 09:06 taivokasper

Hi! @taivokasper

I think that that a mix solution is the answer, for example, having a base docker image for omnidb and other with the full characteristics activated, like pluggings and the Oracle Instant Client.

I try to find more docker images for omnidb with the OIC but i can't find any.

Again, thanks for ur time and I'll be waiting for ur response.

anubischpc avatar Jun 18 '19 22:06 anubischpc

Hello @taivokasper & @anubischpc ,

Sorry for the delay!

The solution offering 2 types of install:

  • one minimal
  • the second all-inclusive seems the best compromise!

Have a nice day, Thomas

thomasboussekey avatar Jul 01 '19 10:07 thomasboussekey