10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Redash で Oracle 接続の Docker を作ってみた

Posted at

Oracle だらけの環境の皆さんへ

Docker Compose Install

※ docker はInstall済み

$ uname -r
3.10.0-327.el7.x86_64
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
$ docker-compose --version
docker-compose version 1.9.0, build 2585387
$ sudo usermod -aG docker ${USER}
# コンソール再起動

Redash Install

$ git clone https://github.com/getredash/redash
$ cd redash
$ mkdir oracle
# Oracle Instance Download
# Oracle でログインしたCookieを持ってくる
$ curl --location --cookie ./cookies.txt --insecure "http://download.oracle.com/otn/linux/instantclient/11204/instantclient-basic-linux.x64-11.2.0.4.0.zip" -o instantclient-basic-linux.x64-11.2.0.4.0.zip
$ curl --location --cookie ./cookies.txt --insecure "http://download.oracle.com/otn/linux/instantclient/11204/instantclient-jdbc-linux.x64-11.2.0.4.0.zip" -o instantclient-jdbc-linux.x64-11.2.0.4.0.zip
$ curl --location --cookie ./cookies.txt --insecure "http://download.oracle.com/otn/linux/instantclient/11204/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip" -o instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
$ curl --location --cookie ./cookies.txt --insecure "http://download.oracle.com/otn/linux/instantclient/11204/instantclient-sdk-linux.x64-11.2.0.4.0.zip" -o instantclient-sdk-linux.x64-11.2.0.4.0.zip
$ curl --location --cookie ./cookies.txt --insecure "http://download.oracle.com/otn/linux/instantclient/11204/instantclient-odbc-linux.x64-11.2.0.4.0.zip" -o instantclient-odbc-linux.x64-11.2.0.4.0.zip
$ cd ../
$ vi Dockerfile-redash
Dockerfile-redash
FROM redash/redash:latest

# Oracle instantclient
ADD oracle/instantclient-basic-linux.x64-11.2.0.4.0.zip /tmp/instantclient-basic-linux.x64-11.2.0.4.0.zip
ADD oracle/instantclient-sdk-linux.x64-11.2.0.4.0.zip /tmp/instantclient-sdk-linux.x64-11.2.0.4.0.zip
ADD oracle/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip /tmp/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
ADD oracle/instantclient-odbc-linux.x64-11.2.0.4.0.zip /tmp/instantclient-odbc-linux.x64-11.2.0.4.0.zip
ADD oracle/instantclient-jdbc-linux.x64-11.2.0.4.0.zip /tmp/instantclient-jdbc-linux.x64-11.2.0.4.0.zip
ADD oracle/tnsnames.ora /tmp/tnsnames.ora

RUN mkdir -p /opt/oracle/
RUN apt-get update  -y
RUN apt-get install -y unzip

RUN unzip /tmp/instantclient-basic-linux.x64-11.2.0.4.0.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-sdk-linux.x64-11.2.0.4.0.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-odbc-linux.x64-11.2.0.4.0.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-jdbc-linux.x64-11.2.0.4.0.zip -d /opt/oracle/

RUN ln -s /opt/oracle/instantclient_11_2 /opt/oracle/instantclient
RUN ln -s /opt/oracle/instantclient/libclntsh.so.11.1 /opt/oracle/instantclient/libclntsh.so
RUN ln -s /opt/oracle/instantclient/sqlplus /usr/local/bin/sqlplus

RUN apt-get install libaio-dev -y
RUN apt-get clean -y

ENV ORACLE_HOME=/opt/oracle/instantclient
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/instantclient
ENV TNS_ADMIN=$ORACLE_HOME/network/admin
RUN mkdir -p /opt/oracle/instantclient/network/admin
RUN cp /tmp/tnsnames.ora /opt/oracle/instantclient/network/admin/

RUN pip install cx_Oracle

#Add REDASH ENV to add Oracle Query Runner
ENV REDASH_ADDITIONAL_QUERY_RUNNERS=redash.query_runner.oracle
$ cp docker-compose-example.yml docker-compose.yml
$ vi docker-compose.yml
docker-compose.yml
redash:
#  image: redash/redash:latest
  build: .
  dockerfile: Dockerfile-redash
  ports:
    - "5000:5000"
    - "1555:1555" # Oracle用ポート追加
  links:
    - redis
    - postgres
  environment:
    REDASH_LOG_LEVEL: "INFO"
    REDASH_REDIS_URL: "redis://redis:6379/0"
    REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
    REDASH_COOKIE_SECRET: veryverysecret
redis:
  image: redis:2.8
postgres:
  image: postgres:9.3
  volumes:
    - /opt/postgres-data:/var/lib/postgresql/data
redash-nginx:
  image: redash/nginx:latest
  ports:
    - "80:80"
  links:
    - redash

$ docker-compose up postgres
# Ctrl+C
$ ./setup/docker/create_database.sh
$ docker-compose up -d

良き Redash Life を

10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?