-
-
Save shamsulbuddy/97cbd89954a9da9acb4a4bf43ff60ff0 to your computer and use it in GitHub Desktop.
Dockerfile - Redash with teradata support
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:trusty | |
# Ubuntu packages | |
RUN apt-get update && \ | |
apt-get install -y python-pip python-dev curl build-essential pwgen libffi-dev sudo git-core wget \ | |
# Postgres client | |
libpq-dev \ | |
# Additional packages required for data sources: | |
libssl-dev libmysqlclient-dev freetds-dev libsasl2-dev && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
# Users creation | |
RUN useradd --system --comment " " --create-home redash | |
# Pip requirements for all data source types, Added Teradata as well | |
RUN pip install -U setuptools==23.1.0 && \ | |
pip install teradata && \ | |
pip install supervisor==3.1.2 | |
COPY . /opt/redash/current | |
RUN chown -R redash /opt/redash/current | |
# Setting working directory | |
WORKDIR /opt/redash/current | |
# Install project specific dependencies | |
RUN pip install -r requirements_all_ds.txt && \ | |
pip install -r requirements.txt | |
RUN curl https://deb.nodesource.com/setup_4.x | bash - && \ | |
apt-get install -y nodejs && \ | |
sudo -u redash -H make deps && \ | |
rm -rf node_modules client/node_modules /home/redash/.npm /home/redash/.cache && \ | |
apt-get purge -y nodejs && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
# Setup supervisord | |
RUN mkdir -p /opt/redash/supervisord && \ | |
mkdir -p /opt/redash/logs && \ | |
cp /opt/redash/current/setup/docker/supervisord/supervisord.conf /opt/redash/supervisord/supervisord.conf | |
# Fix permissions | |
RUN chown -R redash /opt/redash | |
# Expose ports | |
EXPOSE 5000 | |
EXPOSE 9001 | |
# Teradata specific | |
RUN mkdir /root/teradata | |
WORKDIR /root/teradata | |
COPY tdodbc__linux_indep.14.10.00.09-1.tar . | |
RUN tar xvf tdodbc__linux_indep.14.10.00.09-1.tar && \ | |
tar -zxvf tdodbc__linux_indep.14.10.00.09-1.tar.gz && \ | |
rm -f tdodbc__linux_indep.14.10.00.09-1.tar.gz && \ | |
rm -f tdodbc__linux_indep.14.10.00.09-1.txt && \ | |
tar -zxvf tdicu__linux_indep.14.10.00.04-1.tar.gz && \ | |
rm -rf tdicu__linux_indep.14.10.00.04-1.tar.gz && \ | |
rm -f tdicu__linux_indep.14.10.00.04-1.txt && \ | |
tar -zxvf TeraGSS_linux_x64__linux_indep.14.10.06.01-1.tar.gz && \ | |
rm -f TeraGSS_linux_x64__linux_indep.14.10.06.01-1.tar.gz && \ | |
rm -f TeraGSS_linux_x64__linux_indep.14.10.06.01-1.txt && \ | |
apt-get update && \ | |
apt-get install -y python-pyodbc odbcinst && \ | |
apt-get install -y alien && \ | |
alien tdodbc/tdodbc-14.10.00.09-1.noarch.rpm && \ | |
alien tdicu/tdicu-14.10.00.04-1.noarch.rpm && \ | |
alien TeraGSS/TeraGSS_linux_x64-14.10.06.01-1.noarch.rpm && \ | |
dpkg -i tdodbc_14.10.00.09-2_all.deb && \ | |
dpkg -i tdicu_14.10.00.04-2_all.deb && \ | |
dpkg -i teragss-linux-x64_14.10.06.01-2_all.deb && \ | |
sed -i 's#TDODBC_INSTALL_DIR#/opt/teradata/client/14.10/odbc_64#g' /opt/teradata/client/14.10/odbc_64/odbc.ini && \ | |
sed -i 's#TDODBC_LIB_DIR#lib#g' /opt/teradata/client/14.10/odbc_64/odbc.ini && \ | |
sed -i 's#TDODBC_INSTALL_DIR#/opt/teradata/client/14.10/odbc_64#g' /opt/teradata/client/14.10/odbc_64/odbcinst.ini && \ | |
sed -i 's#TDODBC_LIB_DIR#lib#g' /opt/teradata/client/14.10/odbc_64/odbcinst.ini && \ | |
echo $'/opt/teradata/client/14.10/odbc_64/lib\n\ | |
/opt/teradata/client/14.10/tdicu/lib64\n\ | |
/opt/teradata/teragss/linux-x8664/14.10.06.01/lib\n'\ | |
>> /etc/ld.so.conf.d/Zteradata.conf && \ | |
ldconfig -v && \ | |
mkdir /usr/teragss/site && \ | |
cp -R /opt/teradata/teragss/linux-x8664/14.10.06.01/etc/* /usr/teragss/site && \ | |
mkdir /usr/teragss/linux-x8664 && \ | |
mkdir /usr/teragss/linux-x8664/client && \ | |
cd /usr/teragss/linux-x8664/client && \ | |
ln -s /opt/teradata/teragss/linux-x8664/14.10.06.01/lib/ lib && \ | |
cd /opt/teradata/teragss/linux-x8664/14.10.06.01/bin/ && \ | |
./run_tdgssconfig && \ | |
apt-get purge -y alien && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
ENV NLSPATH /opt/teradata/client/14.10/odbc_64/msg/tdodbc.cat | |
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/opt/teradata/client/14.10/odbc_64/lib | |
ENV ODBCINI /opt/teradata/client/14.10/odbc_64/odbc.ini | |
ENV ODBCINST /opt/teradata/client/14.10/odbc_64/odbcinst.ini | |
# back to working directory | |
WORKDIR /opt/redash/current | |
RUN rm -rf /root/teradata | |
# Startup script | |
CMD ["supervisord", "-c", "/opt/redash/supervisord/supervisord.conf"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment