Skip to content

Cloud Run

Cloud Run is the serverless service that runs the model API when a new request comes from the Web app.

Dockerfile

Cloud runs deploys a containerized version of the model API.

Dockerfile
FROM condaforge/mambaforge:4.12.0-0

# Conda env
COPY environment.yml environment.yml
RUN mamba env create

RUN echo "source activate demucs-api" > ~/.bashrc
ENV PATH /opt/conda/envs/demucs-api/bin:$PATH
RUN ln /opt/conda/envs/demucs-api/lib/libopenh264.so.6 /opt/conda/envs/demucs-api/lib/libopenh264.so.5

# Download models
RUN mkdir -p /data
RUN mkdir -p /models
RUN mkdir -p /app

COPY src/config.py /app/config.py
COPY src/download.py /app/download.py
RUN python /app/download.py

# Copy source code
COPY src /app
WORKDIR /app

EXPOSE 8080
ENV demucs_models=/models
ENV demucs_data=/data
ENV AIP_HTTP_PORT=8080
ENV AIP_HEALTH_ROUTE=/health
ENV AIP_PREDICT_ROUTE=/predict

CMD uvicorn api:app --host 0.0.0.0 --port $AIP_HTTP_PORT --log-level debug

Deployment

Building and deployment of the docker image is automated via Cloud Run.