File size: 1,903 Bytes
f28d106
c770543
f28d106
 
63d51f5
 
1d8b8f7
c770543
402daee
 
b05986a
 
 
c770543
 
 
1d8b8f7
 
 
 
 
 
 
f28d106
 
c770543
 
 
 
b05986a
1d8b8f7
8ed8af9
b05986a
 
 
1d8b8f7
6fd9cf8
7b81ce2
1d8b8f7
b6d6f2e
6fd9cf8
b05986a
 
 
 
 
 
c770543
 
402daee
c770543
 
6fd9cf8
c770543
402daee
 
 
 
eee32fb
8a75d3b
1d8b8f7
402daee
1d8b8f7
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
59
60
61
62
63
64
FROM swaggerapi/swagger-ui:v4.18.2 AS swagger-ui
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04

ARG SERVICE_USER=service
ARG SERVICE_UID=1000
ARG SERVICE_GID=1000

ENV PYTHON_VERSION=3.10
ENV POETRY_VENV=/app/.venv

RUN export DEBIAN_FRONTEND=noninteractive \
    && apt-get -qq update \
    && apt-get -qq install --no-install-recommends \
    python${PYTHON_VERSION} \
    python${PYTHON_VERSION}-venv \
    python3-pip \
    lua5.3 \
    lua5.4 \
    lua-check \
    fswatch \
    make \
    ffmpeg \
    redis \
    && rm -rf /var/lib/apt/lists/*

RUN ln -s -f /usr/bin/python${PYTHON_VERSION} /usr/bin/python3 && \
    ln -s -f /usr/bin/python${PYTHON_VERSION} /usr/bin/python && \
    ln -s -f /usr/bin/pip3 /usr/bin/pip

RUN groupadd -g $SERVICE_GID $SERVICE_USER || true
RUN useradd -u $SERVICE_UID -g $SERVICE_GID -d /app -s /usr/sbin/nologin $SERVICE_USER || true

COPY --chown=$SERVICE_UID:$SERVICE_GID . /app
COPY --chown=$SERVICE_UID:$SERVICE_GID --from=swagger-ui /usr/share/nginx/html/swagger-ui.css /app/swagger-ui-assets/swagger-ui.css
COPY --chown=$SERVICE_UID:$SERVICE_GID --from=swagger-ui /usr/share/nginx/html/swagger-ui-bundle.js /app/swagger-ui-assets/swagger-ui-bundle.js
RUN chown $SERVICE_UID:$SERVICE_GID /app

USER $SERVICE_USER

WORKDIR /app

RUN python3 -m venv $POETRY_VENV \
    && $POETRY_VENV/bin/pip install -U pip setuptools \
    && $POETRY_VENV/bin/pip install poetry==1.6.1

ENV PATH="${PATH}:${POETRY_VENV}/bin"

COPY --chown=$SERVICE_UID:$SERVICE_GID poetry.lock pyproject.toml ./

RUN poetry config virtualenvs.in-project true
RUN poetry install --no-root

RUN poetry install && rm -rf /app/.cache/pypoetry
RUN $POETRY_VENV/bin/pip install --no-cache-dir torch==1.13.1+cu117 -f https://download.pytorch.org/whl/torch

WORKDIR /app/reascripts/ReaSpeech
RUN make publish
WORKDIR /app
RUN rm -rf reascripts

ENTRYPOINT ["python3", "app/run.py"]

EXPOSE 9000