3f1c33e1c5
* Fixes DockerfileLeanFoundation build * Updates DockerfileLeanFoundation packages and adds new packages * apt-get performance improvements * Moves packages to CDN and install packages from CDN * Updates all CDN downloads to HTTPS * Removes interactive `rm` command arg in DockerfileLeanFoundation cleanup
240 lines
9.0 KiB
Plaintext
240 lines
9.0 KiB
Plaintext
#
|
|
# LEAN Foundation Docker Container 20201214
|
|
# Cross platform deployment for multiple brokerages
|
|
# Intended to be used in conjunction with Dockerfile. This is just the foundation common OS+Dependencies required.
|
|
#
|
|
|
|
# Use base system for cleaning up wayward processes
|
|
FROM phusion/baseimage:0.9.22
|
|
|
|
MAINTAINER QuantConnect <contact@quantconnect.com>
|
|
|
|
# Use baseimage-docker's init system.
|
|
CMD ["/sbin/my_init"]
|
|
|
|
# Have to add env TZ=UTC. See https://github.com/dotnet/coreclr/issues/602
|
|
RUN env TZ=UTC
|
|
|
|
# Install OS Packages:
|
|
# Misc tools for running Python.NET and IB inside a headless container.
|
|
RUN add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update
|
|
RUN add-apt-repository ppa:apt-fast/stable && apt-get update && apt-get -y install apt-fast
|
|
RUN apt-fast install -y git bzip2 clang cmake curl unzip wget python3-pip python-opengl zlib1g-dev \
|
|
xvfb libxrender1 libxtst6 libxi6 libglib2.0-dev libopenmpi-dev libstdc++6 openmpi-bin \
|
|
r-base pandoc libcurl4-openssl-dev \
|
|
openjdk-8-jdk openjdk-8-jre
|
|
|
|
# Install IB Gateway: Installs to ~/Jts
|
|
RUN wget https://cdn.quantconnect.com/interactive/ibgateway-stable-standalone-linux-x64-v978.2c.sh && \
|
|
chmod 777 ibgateway-stable-standalone-linux-x64-v978.2c.sh && \
|
|
./ibgateway-stable-standalone-linux-x64-v978.2c.sh -q && \
|
|
wget -O ~/Jts/jts.ini https://cdn.quantconnect.com/interactive/ibgateway-latest-standalone-linux-x64-v974.4g.jts.ini && \
|
|
rm ibgateway-stable-standalone-linux-x64-v978.2c.sh
|
|
|
|
# Mono C# for LEAN:
|
|
# From https://github.com/mono/docker/blob/master/
|
|
RUN apt-get update && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
|
RUN echo "deb http://download.mono-project.com/repo/ubuntu stable-xenial/snapshots/5.12.0.226 main" > /etc/apt/sources.list.d/mono-xamarin.list && \
|
|
apt-get update && apt-fast install -y binutils mono-complete ca-certificates-mono mono-vbnc nuget referenceassemblies-pcl && \
|
|
apt-fast install -y fsharp && rm -rf /var/lib/apt/lists/* /tmp/*
|
|
|
|
# Install miniconda
|
|
ENV CONDA="Miniconda3-4.5.12-Linux-x86_64.sh"
|
|
ENV PATH="/opt/miniconda3/bin:${PATH}"
|
|
RUN wget https://cdn.quantconnect.com/miniconda/${CONDA} && \
|
|
bash ${CONDA} -b -p /opt/miniconda3 && rm -rf ${CONDA} && \
|
|
ln -s /opt/miniconda3/lib/libpython3.6m.so /usr/lib/libpython3.6m.so
|
|
|
|
# Install supported third party python packages
|
|
# Updates conda and pip
|
|
RUN conda update -y conda pip
|
|
|
|
# Updates pip
|
|
RUN pip install --upgrade --no-cache-dir pip
|
|
|
|
# Sets python version to 3.6.8
|
|
RUN conda install -y python=3.6.8
|
|
RUN conda clean -y --all
|
|
|
|
# Conda install required so that the packages are not
|
|
# overwritten and have their version invalidated by
|
|
# subsequent calls to conda install
|
|
RUN conda install -y \
|
|
cython=0.29.17 \
|
|
pandas=0.25.3 \
|
|
numpy=1.18.1
|
|
|
|
# Install all packages
|
|
RUN pip install --no-cache-dir \
|
|
wrapt==1.12.1 \
|
|
astropy==4.0.1.post1 \
|
|
beautifulsoup4==4.9.0 \
|
|
dill==0.3.1.1 \
|
|
jsonschema==3.2.0 \
|
|
lxml==4.5.0 \
|
|
msgpack==1.0.0 \
|
|
numba==0.46 \
|
|
setuptools-git==1.2 \
|
|
xarray==0.15.1 \
|
|
plotly==4.7.1 \
|
|
jupyterlab==2.1.2 \
|
|
tensorflow==1.15.2 \
|
|
docutils==0.14 \
|
|
cvxopt==1.2.0 \
|
|
gensim==3.8.0 \
|
|
Keras==2.3.1 \
|
|
lightgbm==2.3.0 \
|
|
mpi4py==3.0.3 \
|
|
nltk==3.4.5 \
|
|
pomegranate==0.11.1 \
|
|
graphviz==0.8.4 \
|
|
cmdstanpy==0.4 \
|
|
copulae==0.3.1 \
|
|
featuretools==0.14.0 \
|
|
fbprophet==0.6 \
|
|
PuLP==1.6.8 \
|
|
pymc3==3.8 \
|
|
rauth==0.7.3 \
|
|
scikit-learn==0.21.3 \
|
|
scikit-multiflow==0.4.1 \
|
|
scikit-optimize==0.7.4 \
|
|
Theano==1.0.4 \
|
|
tsfresh==0.15.1 \
|
|
tslearn==0.3.1 \
|
|
tweepy==3.8.0 \
|
|
PyWavelets==1.1.1 \
|
|
umap-learn==0.4.3 \
|
|
nvidia-ml-py3==7.352.0 \
|
|
fastai==1.0.61 \
|
|
arch==4.14 \
|
|
copulalib==1.1.0 \
|
|
copulas==0.3.3 \
|
|
creme==0.5.1 \
|
|
cufflinks==0.17.3 \
|
|
gym==0.17.2 \
|
|
ipywidgets==7.5.1 \
|
|
deap==1.3.1 \
|
|
cvxpy==1.0.31 \
|
|
pykalman==0.9.5 \
|
|
pyportfolioopt==1.2.2 \
|
|
pyramid-arima==0.9.0 \
|
|
pyro-ppl==1.3.1 \
|
|
riskparityportfolio==0.2 \
|
|
sklearn==0.0 \
|
|
sklearn-json==0.1.0 \
|
|
stable-baselines==2.10.0 \
|
|
statistics==1.0.3.5 \
|
|
statsmodels==0.11.1 \
|
|
tensorforce==0.5.4 \
|
|
QuantLib-Python==1.18 \
|
|
xgboost==1.1.0 \
|
|
dtw-python==1.0.5 \
|
|
cntk==2.7 \
|
|
mxnet==1.6 \
|
|
gluonts==0.4.3 \
|
|
gplearn==0.4.1 \
|
|
jax==0.1.68 \
|
|
jaxlib==0.1.47 \
|
|
keras-rl==0.4.2 \
|
|
pennylane==0.9.0 \
|
|
neural-tangents==0.2.1 \
|
|
mplfinance==0.12.4a0 \
|
|
hmmlearn==0.2.3 \
|
|
catboost==0.23.2 \
|
|
fastai2==0.0.17 \
|
|
ppscore==0.0.2 \
|
|
scikit-tda==0.0.3 \
|
|
ta==0.5.25
|
|
|
|
RUN wget -O mlfinlab.zip https://cdn.quantconnect.com/mlfinlab/mlfinlab-0.9.3.zip && \
|
|
unzip -q mlfinlab.zip && \
|
|
mkdir -p /opt/miniconda3/lib/python3.6/site-packages/ && \
|
|
mv mlfinlab /opt/miniconda3/lib/python3.6/site-packages/
|
|
|
|
RUN conda install -y -c conda-forge \
|
|
openmpi=4.0.3
|
|
|
|
# Install non-math packages
|
|
RUN conda install -y \
|
|
blaze=0.11.3 \
|
|
tensorflow-base=1.15.0
|
|
|
|
# Install math/ML from pytorch
|
|
RUN conda install -y -c pytorch \
|
|
pytorch=1.5.0 \
|
|
torchvision=0.6.0
|
|
|
|
RUN conda clean -y --all
|
|
|
|
RUN python -m nltk.downloader -d /usr/share/nltk_data punkt
|
|
RUN python -m nltk.downloader -d /usr/share/nltk_data vader_lexicon
|
|
|
|
# Update ODO
|
|
RUN conda remove --force-remove -y odo
|
|
RUN wget https://cdn.quantconnect.com/odo/odo-master-9fce669.zip && \
|
|
unzip -q odo-master-9fce669.zip && cd odo-master && \
|
|
pip install . && cd .. && rm -rf odo-master
|
|
|
|
# Install DX Analytics
|
|
RUN wget https://cdn.quantconnect.com/dx/dx-master-4c47c25.zip && \
|
|
unzip -q dx-master-4c47c25.zip && cd dx-master && \
|
|
pip install . && cd .. && rm -rf dx-master
|
|
|
|
# Install Auto-KS
|
|
RUN wget https://cdn.quantconnect.com/auto_ks/auto_ks-master-b39e8f3.zip && \
|
|
unzip -q auto_ks-master-b39e8f3.zip && cd auto_ks-master && \
|
|
pip install . && cd .. && rm -rf auto_ks-master
|
|
|
|
# Install Pyrb
|
|
RUN wget https://cdn.quantconnect.com/pyrb/pyrb-master-d02b56a.zip && \
|
|
unzip -q pyrb-master-d02b56a.zip && cd pyrb-master && \
|
|
pip install . && cd .. && rm -rf pyrb-master
|
|
|
|
# Install SSM
|
|
RUN wget https://cdn.quantconnect.com/ssm/ssm-9fd66aed.zip && \
|
|
unzip -q ssm-9fd66aed.zip && cd ssm && \
|
|
pip install . && cd .. && rm -rf ssm
|
|
|
|
# Install TA-lib for python
|
|
RUN wget https://cdn.quantconnect.com/ta-lib/ta-lib-0.4.0-src.tar.gz && \
|
|
tar -zxvf ta-lib-0.4.0-src.tar.gz && cd ta-lib && \
|
|
./configure --prefix=/usr && make && make install && \
|
|
wget https://cdn.quantconnect.com/ta-lib/TA_Lib-0.4.18.zip && \
|
|
unzip -q TA_Lib-0.4.18.zip && cd ta-lib-TA_Lib-0.4.18 && \
|
|
python setup.py install && cd ../.. && rm -rf ta-lib
|
|
|
|
# Install py-earth
|
|
RUN wget https://cdn.quantconnect.com/py-earth/py-earth-0.1.0.zip && \
|
|
unzip -q py-earth-0.1.0.zip && cd py-earth-0.1.0 && \
|
|
python setup.py install && cd .. && rm -rf py-earth-0.1.0
|
|
|
|
# Install fastText
|
|
RUN wget https://cdn.quantconnect.com/fastText/fastText-0.9.2.zip && \
|
|
unzip -q fastText-0.9.2.zip && cd fastText-0.9.2 && \
|
|
pip install . && cd .. && rm -rf fastText-0.9.2
|
|
|
|
# Install Tigramite
|
|
RUN wget https://cdn.quantconnect.com/tigramite/tigramite-4.1.zip && \
|
|
unzip -q tigramite-4.1.zip && cd tigramite-4.1 && \
|
|
python setup.py install && cd .. && rm -rf tigramite-4.1
|
|
|
|
# Install H2O: https://www.h2o.ai/download/
|
|
RUN wget https://cdn.quantconnect.com/h2o/h2o-3.30.0.3.zip && \
|
|
unzip -q h2o-3.30.0.3.zip && \
|
|
pip install h2o-3.30.0.3/python/h2o-3.30.0.3-py2.py3-none-any.whl && \
|
|
rm -rf h2o-3.30.0.3
|
|
|
|
# Delete temporary zip files
|
|
RUN rm -rf *.zip *.gz
|
|
|
|
# Remove black-listed packages
|
|
RUN pip uninstall -y s3transfer
|
|
RUN conda clean -y --all
|
|
|
|
# Clean up any unused packages installed by apt-get
|
|
RUN apt-get autoremove --purge -y
|
|
|
|
# List all packages
|
|
RUN conda list
|