File size: 2,933 Bytes
60c2f18 dbc3350 2839144 eae7567 2839144 58cec34 2839144 594536a 2839144 58cec34 60c2f18 dbc3350 c8259c0 87337b1 dbc3350 20ad26e c8259c0 87337b1 c8259c0 9f18430 cb145d6 9f18430 86f3bf2 3c7d3b0 dbc3350 60c2f18 dbc3350 cb145d6 20ad26e cb145d6 dbc3350 20ad26e 50c3ed9 20ad26e 50c3ed9 dbc3350 50c3ed9 dbc3350 20ad26e dbc3350 20ad26e dbc3350 |
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
FROM ubuntu:22.04
# Установка базовых пакетов
RUN apt-get update && apt-get install -y \
curl \
git \
wget \
make \
gcc \
build-essential \
libasound2 \
libgstreamer1.0-dev \
libunwind-dev \
libc++1 \
libssl-dev \
python3 \
python3-venv \
python3-pip \
python3-dev \
unzip \
jq \
vim \
ca-certificates \
&& apt-get clean && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/*
# Установка Go
RUN wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz && \
tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz && \
rm go1.21.0.linux-amd64.tar.gz
# Настройка окружения Go
ENV PATH=$PATH:/usr/local/go/bin
ENV GOPATH=/go
ENV PATH=$PATH:$GOPATH/bin
RUN mkdir -p /go && chmod 777 /go
# Создание директории для кэша Go
ENV GOCACHE=/tmp/go-cache
RUN mkdir -p /tmp/go-cache && chmod 777 /tmp/go-cache
# Установка Node.js и pnpm
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
npm install -g pnpm
# Клонирование репозитория TEN-Agent
WORKDIR /app
RUN git clone --depth 1 https://github.com/TEN-framework/TEN-Agent.git /app
# Создание пользовательских директорий для временных файлов
RUN mkdir -p /tmp/ten_user && chmod 777 /tmp/ten_user
RUN mkdir -p /app/fallback && chmod 777 /app/fallback
# Компиляция API сервера
RUN mkdir -p /app/server/bin && \
cd /app/server && \
GOCACHE=/tmp/go-cache go build -o bin/api main.go && \
chmod +x bin/api && \
cp bin/api /app/fallback/api && \
chmod 777 /app/fallback/api
# Проверяем, что API сервер скомпилирован
RUN ls -la /app/server/bin/api /app/fallback/api
# Создание .env файла из окружения Hugging Face Space
# Используем простой формат без пробелов для предотвращения ошибок
RUN echo "AGORA_APP_ID=${AGORA_APP_ID}\nAGORA_APP_CERTIFICATE=${AGORA_APP_CERTIFICATE}\nAZURE_STT_KEY=${AZURE_STT_KEY}\nAZURE_STT_REGION=${AZURE_STT_REGION}\nAZURE_TTS_KEY=${AZURE_TTS_KEY}\nAZURE_TTS_REGION=${AZURE_TTS_REGION}\nOPENAI_API_KEY=${OPENAI_API_KEY}" > /app/.env
# Предварительная установка зависимостей для playground
# Делаем это отдельно, чтобы не пересобирать при каждом изменении
RUN cd /app/playground && pnpm install
# Копируем стартовые скрипты
COPY start.sh /app/start.sh
COPY fallback.py /app/fallback.py
RUN chmod +x /app/start.sh /app/fallback.py
# Открываем порты (7860 для HF Space, 8080 для API)
EXPOSE 7860 8080
# Запускаем TEN-Agent через fallback скрипт
CMD ["/app/start.sh"]
|