38 lines
954 B
Docker
38 lines
954 B
Docker
# Use Alpine for a smaller image
|
|
FROM python:3.11-alpine
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Install build dependencies for TA-Lib
|
|
RUN apk add --no-cache \
|
|
build-base \
|
|
wget \
|
|
tar \
|
|
bash \
|
|
libffi-dev
|
|
|
|
# Download, extract, and compile TA-Lib (ARM compatible)
|
|
RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz \
|
|
&& tar -xvzf ta-lib-0.4.0-src.tar.gz \
|
|
&& cd ta-lib \
|
|
&& ./configure --prefix=/usr \
|
|
&& make \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf ta-lib ta-lib-0.4.0-src.tar.gz
|
|
|
|
# Copy the requirements file first (for caching layers)
|
|
COPY requirements.txt .
|
|
|
|
# Install Python dependencies, including `ta-lib`
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy the rest of the project
|
|
COPY . .
|
|
|
|
# Expose Streamlit's default port
|
|
EXPOSE 8501
|
|
|
|
# Run Streamlit in headless mode
|
|
CMD ["streamlit", "run", "src/streamlit_app.py", "--server.headless=true", "--server.port=8501"] |