このページの通りにやってみました
- https://gist.github.com/linhmtran168/ec0757a487a83a1fc5c5d3188af81874
- 2019/08/31時点で再現するための、Dockerfileなどの変更点をまとめておきます
pip自体のアップデート処理を追加する
- Dockerfileに次の1行を追加します
RUN pip install --upgrade pip
requiments.txt中の OAuthLibのバージョンを上げる
- そのままbuildすると「docker-compose run --rm server create_db」したときにエラーが出てコンテナが起動しません
- https://github.com/getredash/redash/pull/3262
Flask-OAuthLib==0.9.3
Flask-OAuthLib==0.9.5
instant-clientのバージョンを合わせる
- https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
- もとのDockerfileで指定していたVersion 18系は、今現在18.3ではなく18.5が最新のようなのでそれをダウンロードします
- Dockerfile中で18.3を指定している箇所も18.5に直しておきます
18_3
18_5
実際のDockerfileは下記のようになりました
FROM redash/base:latest
RUN apt-get update -y
RUN apt-get install -y unzip
RUN apt-get install -y libaio-dev # depends on Oracle
RUN apt-get clean -y
# -- Start setup Oracle
# Add instantclient
ADD oracle/instantclient-basic-linux.x64-18.5.0.0.0dbru.zip /tmp/instantclient-basic-linux.x64-18.5.0.0.0dbru.zip
ADD oracle/instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip /tmp/instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip
ADD oracle/instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip /tmp/instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip
ADD oracle/instantclient-odbc-linux.x64-18.5.0.0.0dbru.zip /tmp/instantclient-odbc-linux.x64-18.5.0.0.0dbru.zip
ADD oracle/instantclient-jdbc-linux.x64-18.5.0.0.0dbru.zip /tmp/instantclient-jdbc-linux.x64-18.5.0.0.0dbru.zip
RUN mkdir -p /opt/oracle/
RUN unzip /tmp/instantclient-basic-linux.x64-18.5.0.0.0dbru.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-odbc-linux.x64-18.5.0.0.0dbru.zip -d /opt/oracle/
RUN unzip /tmp/instantclient-jdbc-linux.x64-18.5.0.0.0dbru.zip -d /opt/oracle/
ENV ORACLE_HOME=/opt/oracle/instantclient_18_5
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_18_5:$LD_LIBRARY_PATH
ENV PATH=/opt/oracle/instantclient_18_5:$PATH
# Add REDASH ENV to add Oracle Query Runner
ENV REDASH_ADDITIONAL_QUERY_RUNNERS=redash.query_runner.oracle
# -- End setup Oracle
# We first copy only the requirements file, to avoid rebuilding on every file
# change.
COPY requirements.txt requirements_dev.txt requirements_all_ds.txt requirements_oracle_ds.txt ./
RUN pip install --upgrade pip
RUN pip install -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt -r requirements_oracle_ds.txt
COPY . ./
RUN npm install && npm run build && rm -rf node_modules
RUN chown -R redash /app
USER redash
ENTRYPOINT ["/app/bin/docker-entrypoint"]
CMD ["server"]