File size: 1,588 Bytes
8c536a0
30808e3
 
8c536a0
 
 
 
 
 
30808e3
8c536a0
 
 
 
 
30808e3
8c536a0
30808e3
8c536a0
 
30808e3
8c536a0
 
30808e3
 
 
8c536a0
30808e3
 
8c536a0
30808e3
8c536a0
 
30808e3
8c536a0
30808e3
 
8c536a0
 
e4a0fc6
135fdec
 
 
 
 
 
0100c03
135fdec
 
 
8c536a0
 
30808e3
8c536a0
30808e3
6c994c0
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Use Miniconda base image
FROM continuumio/miniconda3

# Update system and install required packages
RUN apt-get update && apt-get install -y \
    nano \
    unzip \
    curl \
 && rm -rf /var/lib/apt/lists/*

# Install AWS CLI v2
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \
    unzip awscliv2.zip && \
    ./aws/install && \
    rm -rf awscliv2.zip aws

# Create a new user 'user' (Hugging Face requires a non-root user)
RUN useradd -m -u 1000 user

# Switch to this user
USER user

# Define environment variables
ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH

# Set the working directory
WORKDIR $HOME/app

# Copy and install Python dependencies
COPY requirements.txt /requirements.txt
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r /requirements.txt

# Copy all files into the container
COPY --chown=user . $HOME/app

# Hugging Face Spaces will set $PORT automatically
# Secrets (like AWS_ACCESS_KEY_ID) must be added via the Hugging Face UI

# Define environment variables for MLflow and S3
ARG BACKEND_STORE_URI
ARG ARTIFACT_STORE_URI
ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
ENV MLFLOW_BACKEND_STORE_URI=$BACKEND_STORE_URI \
    MLFLOW_DEFAULT_ARTIFACT_ROOT=$ARTIFACT_STORE_URI \
    AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
    AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY

# Start the MLflow server
CMD mlflow server \
    --host 0.0.0.0 \
    --port $PORT \
    --backend-store-uri $BACKEND_STORE_URI \
    --default-artifact-root $ARTIFACT_STORE_URI \
    --serve-artifacts