CrispASR / Dockerfile
cstr's picture
Fix Space root Docker layout
e53f572 verified
FROM ubuntu:22.04 AS build
WORKDIR /src
RUN apt-get update && \
apt-get install -y build-essential cmake git curl ninja-build && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
ARG CRISPASR_REPO=https://github.com/CrispStrobe/CrispASR
ARG CRISPASR_REF=main
RUN git clone --depth 1 "${CRISPASR_REPO}" /src/CrispASR && \
git -C /src/CrispASR fetch --depth 1 origin "${CRISPASR_REF}" && \
git -C /src/CrispASR checkout --detach FETCH_HEAD
WORKDIR /src/CrispASR
ARG CRISPASR_BUILD_JOBS
RUN jobs="${CRISPASR_BUILD_JOBS:-$(nproc)}" && \
cmake -S . -B build -G Ninja -DWHISPER_BUILD_TESTS=OFF && \
cmake --build build -j"${jobs}" --target whisper-cli
FROM ubuntu:22.04 AS runtime
WORKDIR /space
RUN apt-get update && \
apt-get install -y bash curl ffmpeg python3 python3-pip && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
COPY --from=build /src/CrispASR/build /opt/crispasr/build
COPY requirements.txt /space/requirements.txt
RUN pip3 install --no-cache-dir -r /space/requirements.txt
RUN find /opt/crispasr/build -type f -name 'lib*.so*' -exec cp -a {} /usr/local/lib/ \; && ldconfig
COPY app.py start.sh /space/
RUN chmod +x /space/start.sh && \
useradd -m -u 1000 app && \
mkdir -p /models /cache && \
chown -R app:app /space /opt/crispasr /models /cache
ENV PATH=/opt/crispasr/build/bin:$PATH
ENV CRISPASR_SERVER_URL=http://127.0.0.1:8080
ENV CRISPASR_CACHE_DIR=/cache
ENV GRADIO_SERVER_NAME=0.0.0.0
ENV GRADIO_SERVER_PORT=7860
USER app
EXPOSE 7860
EXPOSE 8080
ENTRYPOINT ["/space/start.sh"]