Update dockerfile to multistage

This change reduce the image size from 727Mb to 469Mb.
This commit is contained in:
David Martinez Martin 2020-12-09 03:27:59 +01:00 committed by GitHub
parent d9a86158f4
commit e6b3e64534
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,24 +1,40 @@
FROM python:3.8.6-slim-buster FROM python:3.8.6-slim-buster as base
RUN apt-get update \ # Setup env
&& apt-get -y install curl build-essential libssl-dev sqlite3 \ ENV LANG C.UTF-8
&& apt-get clean \ ENV LC_ALL C.UTF-8
&& pip install --upgrade pip ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
# Prepare environment # Prepare environment
RUN mkdir /freqtrade RUN mkdir /freqtrade
WORKDIR /freqtrade WORKDIR /freqtrade
# Install dependencies
FROM base as python-deps
RUN apt-get update \
&& apt-get -y install git curl build-essential libssl-dev \
&& apt-get clean \
&& pip install --upgrade pip
# Install TA-lib # Install TA-lib
COPY build_helpers/* /tmp/ COPY build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib* RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH /usr/local/lib ENV LD_LIBRARY_PATH /usr/local/lib
# Install dependencies # Install dependencies
COPY requirements.txt requirements-hyperopt.txt /freqtrade/ COPY requirements.txt requirements-hyperopt.txt /freqtrade/
RUN pip install numpy --no-cache-dir \ RUN pip install --user --no-cache-dir numpy \
&& pip install -r requirements-hyperopt.txt --no-cache-dir && pip install --user --no-cache-dir -r requirements-hyperopt.txt
# Copy dependencies to runtime-image
FROM base as runtime-image
COPY --from=python-deps /usr/local/lib /usr/local/lib
ENV LD_LIBRARY_PATH /usr/local/lib
COPY --from=python-deps /root/.local /root/.local
ENV PATH=/root/.local/bin:$PATH
# Install and execute # Install and execute
COPY . /freqtrade/ COPY . /freqtrade/