Skip to content

Instantly share code, notes, and snippets.

@shamsulbuddy
Forked from mrbungie/Dockerfile
Last active January 30, 2017 16:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shamsulbuddy/97cbd89954a9da9acb4a4bf43ff60ff0 to your computer and use it in GitHub Desktop.
Save shamsulbuddy/97cbd89954a9da9acb4a4bf43ff60ff0 to your computer and use it in GitHub Desktop.
Dockerfile - Redash with teradata support
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