ten / Dockerfile
3v324v23's picture
Переключение на dev-режим Playground UI для расширенных элементов управления
3da93f6
raw
history blame
3.11 kB
FROM ubuntu:22.04
# Принудительное обновление для HuggingFace, чтобы использовать правильную версию Dockerfile
# Установка необходимых пакетов
RUN apt-get clean && apt-get update && apt-get install -y --no-install-recommends \
libasound2 \
libgstreamer1.0-dev \
libunwind-dev \
libc++1 \
libssl-dev \
python3 \
python3-venv \
python3-pip \
python3-dev \
curl \
wget \
unzip \
git \
build-essential \
jq \
vim \
ca-certificates \
&& apt-get clean && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/*
# Установка Go 1.21
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
ENV PATH=$PATH:/usr/local/go/bin
ENV GOPATH=/go
ENV PATH=$PATH:$GOPATH/bin
# Создаем каталог для кэша Go и устанавливаем правильные разрешения
RUN mkdir -p /go && chmod 777 /go
# Установка Node.js и pnpm
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
npm install -g pnpm
# Создаем пользователя
RUN useradd -m -s /bin/bash tenuser
# Устанавливаем рабочую директорию
WORKDIR /app
# Клонируем репозиторий TEN-Agent
RUN git clone --depth 1 https://github.com/TEN-framework/TEN-Agent.git /app && \
echo "Доступные ветки и теги:" && \
git branch -a && \
git tag -l
# Создаем необходимые директории и устанавливаем права
RUN mkdir -p /app/server/bin && \
mkdir -p /app/agents && \
mkdir -p /tmp/ten_agent && \
mkdir -p /app/.pnpm-store && \
chown -R tenuser:tenuser /app && \
chown -R tenuser:tenuser /tmp/ten_agent
# Копируем .env файл
COPY .env /app/.env
RUN chown tenuser:tenuser /app/.env
# Компилируем сервер
RUN cd /app/server && \
go mod tidy && \
go mod download && \
go build -o bin/api main.go && \
chmod +x bin/api
# Инициализация агентов с помощью task
RUN go install github.com/go-task/task/v3/cmd/task@latest
RUN cd /app && \
mkdir -p agents/examples/default && \
cp -r agents/examples/* agents/ && \
cp agents/examples/default/manifest.json agents/manifest.json && \
cp agents/examples/default/property.json agents/property.json && \
echo "Создан файл property.json:"
# Установка зависимостей Playground UI без сборки (запустим в режиме dev)
ENV PNPM_HOME="/app/.pnpm-store"
ENV PATH="$PNPM_HOME:$PATH"
RUN cd /app/playground && \
pnpm install
# Установка точки входа
COPY app.py /app/app.py
RUN chmod +x /app/app.py
# Открываем порты
EXPOSE 7860 8080 3000
# Запускаем API сервер и Playground в dev-режиме
ENTRYPOINT ["python3", "/app/app.py"]