NWPS_SWAN / Dockerfile
nakas's picture
FIX DOCKERFILE: Remove unavailable packages
b26fa3b
Raw
History Blame Contribute Delete
1.43 kB
FROM python:3.9-slim
WORKDIR /app
# Install comprehensive system dependencies for pygrib and GRIB processing
RUN apt-get update && apt-get install -y \
libeccodes-dev \
libproj-dev \
libgeos-dev \
libjpeg-dev \
libpng-dev \
libopenjp2-7-dev \
libaec-dev \
libnetcdf-dev \
libhdf5-dev \
libhdf5-serial-dev \
zlib1g-dev \
cmake \
pkg-config \
gcc \
g++ \
gfortran \
build-essential \
python3-dev \
cython3 \
libssl-dev \
libffi-dev \
libbz2-dev \
liblzma-dev \
curl \
wget \
git \
&& rm -rf /var/lib/apt/lists/*
# Set critical environment variables for eccodes and pygrib
ENV ECCODES_DIR=/usr
ENV ECCODES_DEFINITION_PATH=/usr/share/eccodes/definitions
# Create non-root user for Hugging Face Spaces
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME/app
# Copy requirements and install Python packages
COPY --chown=user requirements.txt .
# Install Python packages (pygrib is the key for real Arctic extraction)
RUN pip install --no-cache-dir --user -r requirements.txt
# Copy application files
COPY --chown=user . .
# Expose port 7860 for Hugging Face Spaces
EXPOSE 7860
# Set environment variables for the application
ENV PYTHONPATH="${PYTHONPATH}:${HOME}/app"
ENV GRADIO_SERVER_NAME="0.0.0.0"
ENV GRADIO_SERVER_PORT=7860
CMD ["python", "app.py"]