Aman Sharma commited on
Commit
c4d0a47
·
1 Parent(s): a0dc69b

Added docker files

Browse files
Files changed (2) hide show
  1. .dockerignore +1 -0
  2. Dockerfile +93 -0
.dockerignore ADDED
@@ -0,0 +1 @@
 
 
1
+ seamless_server/models/*.pt
Dockerfile ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # build frontend with node
2
+ FROM node:20-alpine AS frontend
3
+ RUN apk add --no-cache libc6-compat
4
+ WORKDIR /app
5
+
6
+ COPY streaming-react-app .
7
+ RUN \
8
+ if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
9
+ elif [ -f package-lock.json ]; then npm ci; \
10
+ elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
11
+ else echo "Lockfile not found." && exit 1; \
12
+ fi
13
+
14
+ RUN npm run build
15
+
16
+ # build backend on CUDA
17
+ FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 AS backend
18
+ WORKDIR /app
19
+
20
+ ENV DEBIAN_FRONTEND=noninteractive
21
+ ENV NODE_MAJOR=20
22
+
23
+ RUN apt-get update && \
24
+ apt-get upgrade -y && \
25
+ apt-get install -y --no-install-recommends \
26
+ git \
27
+ git-lfs \
28
+ wget \
29
+ curl \
30
+ # python build dependencies \
31
+ build-essential \
32
+ libssl-dev \
33
+ zlib1g-dev \
34
+ libbz2-dev \
35
+ libreadline-dev \
36
+ libsqlite3-dev \
37
+ libncursesw5-dev \
38
+ xz-utils \
39
+ tk-dev \
40
+ libxml2-dev \
41
+ libxmlsec1-dev \
42
+ libffi-dev \
43
+ liblzma-dev \
44
+ sox libsox-fmt-all \
45
+ # gradio dependencies \
46
+ ffmpeg \
47
+ # fairseq2 dependencies \
48
+ libjpeg8-dev \
49
+ libpng-dev \
50
+ libsndfile-dev && \
51
+ apt-get clean && \
52
+ rm -rf /var/lib/apt/lists/*
53
+
54
+ USER root
55
+ RUN ln -s /usr/lib/x86_64-linux-gnu/libsox.so.3 /usr/lib/x86_64-linux-gnu/libsox.so
56
+ # install older versions libjpeg62-turbo and libpng15
57
+ RUN wget http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.1.5-2_amd64.deb && \
58
+ dpkg -i libjpeg62-turbo_2.1.5-2_amd64.deb && \
59
+ rm libjpeg62-turbo_2.1.5-2_amd64.deb
60
+ RUN wget https://master.dl.sourceforge.net/project/libpng/libpng15/1.5.30/libpng-1.5.30.tar.gz && \
61
+ tar -xvf libpng-1.5.30.tar.gz && cd libpng-1.5.30 && ./configure && make && make install && cd .. && rm -rf libpng-1.5.30.tar.gz libpng-1.5.30
62
+
63
+ RUN useradd -m -u 1000 user
64
+ USER user
65
+ ENV HOME=/home/user \
66
+ PATH=/home/user/.local/bin:$PATH
67
+ WORKDIR $HOME/app
68
+
69
+ RUN curl https://pyenv.run | bash
70
+ ENV PATH=$HOME/.pyenv/shims:$HOME/.pyenv/bin:$PATH
71
+ ARG PYTHON_VERSION=3.10.12
72
+ RUN pyenv install $PYTHON_VERSION && \
73
+ pyenv global $PYTHON_VERSION && \
74
+ pyenv rehash && \
75
+ pip install --no-cache-dir -U pip setuptools wheel
76
+
77
+ COPY --chown=user:user ./seamless_server ./seamless_server
78
+ # change dir since pip needs to seed whl folder
79
+ RUN cd seamless_server && \
80
+ pip install fairseq2 --pre --extra-index-url https://fair.pkg.atmeta.com/fairseq2/whl/nightly/pt2.1.1/cu118 && \
81
+ pip install --no-cache-dir --upgrade -r requirements.txt
82
+ COPY --from=frontend /app/dist ./streaming-react-app/dist
83
+
84
+ WORKDIR $HOME/app/seamless_server
85
+ RUN --mount=type=secret,id=HF_TOKEN,mode=0444,required=false \
86
+ huggingface-cli login --token $(cat /run/secrets/HF_TOKEN) || echo "HF_TOKEN error" && \
87
+ huggingface-cli download meta-private/SeamlessExpressive pretssel_melhifigan_wm-final.pt --local-dir ./models/Seamless/ || echo "HF_TOKEN error" && \
88
+ ln -s $(readlink -f models/Seamless/pretssel_melhifigan_wm-final.pt) models/Seamless/pretssel_melhifigan_wm.pt || true;
89
+
90
+ USER user
91
+ RUN ["chmod", "+x", "./run_docker.sh"]
92
+ CMD ./run_docker.sh
93
+