|
FROM ubuntu:22.04 |
|
|
|
|
|
|
|
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/* |
|
|
|
|
|
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 |
|
|
|
|
|
RUN mkdir -p /go && chmod 777 /go |
|
|
|
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ |
|
apt-get install -y nodejs && \ |
|
npm install -g pnpm |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
RUN git clone --depth 1 https://github.com/TEN-framework/TEN-Agent.git /app && \ |
|
echo "Доступные ветки и теги:" && \ |
|
git branch -a && \ |
|
git tag -l |
|
|
|
|
|
RUN go install github.com/go-task/task/v3/cmd/task@latest |
|
|
|
|
|
RUN mkdir -p /app/server/bin && \ |
|
mkdir -p /app/agents && \ |
|
mkdir -p /tmp/ten_agent && \ |
|
mkdir -p /app/.pnpm-store |
|
|
|
|
|
COPY .env /app/.env |
|
|
|
|
|
RUN cd /app/server && \ |
|
go mod tidy && \ |
|
go mod download && \ |
|
go build -o bin/api main.go && \ |
|
chmod +x bin/api |
|
|
|
|
|
ENV PNPM_HOME="/app/.pnpm-store" |
|
ENV PATH="$PNPM_HOME:$PATH" |
|
RUN cd /app/playground && \ |
|
pnpm install |
|
|
|
|
|
RUN cd /app && \ |
|
mkdir -p agents/examples && \ |
|
mkdir -p agents/examples/default && \ |
|
mkdir -p agents/examples/demo && \ |
|
mkdir -p agents/examples/experimental |
|
|
|
|
|
RUN cd /app && \ |
|
cp -r agents/examples/default agents/ && \ |
|
cp -r agents/examples/demo agents/ && \ |
|
cp -r agents/examples/experimental agents/ |
|
|
|
|
|
RUN echo '{\n\ |
|
"name": "default",\n\ |
|
"agents": [\n\ |
|
{\n\ |
|
"name": "voice_agent",\n\ |
|
"description": "A simple voice agent"\n\ |
|
},\n\ |
|
{\n\ |
|
"name": "chat_agent",\n\ |
|
"description": "A text chat agent"\n\ |
|
}\n\ |
|
]\n\ |
|
}' > /app/agents/manifest.json |
|
|
|
|
|
RUN echo '{\n\ |
|
"name": "TEN Agent Example",\n\ |
|
"version": "0.0.1",\n\ |
|
"extensions": ["openai_chatgpt"],\n\ |
|
"description": "A basic voice agent with OpenAI",\n\ |
|
"graphs": [\n\ |
|
{\n\ |
|
"name": "Voice Agent",\n\ |
|
"description": "Basic voice agent with OpenAI",\n\ |
|
"file": "voice_agent.json"\n\ |
|
},\n\ |
|
{\n\ |
|
"name": "Chat Agent",\n\ |
|
"description": "Simple chat agent",\n\ |
|
"file": "chat_agent.json"\n\ |
|
}\n\ |
|
]\n\ |
|
}' > /app/agents/property.json |
|
|
|
|
|
RUN echo '{\n\ |
|
"nodes": [],\n\ |
|
"edges": [],\n\ |
|
"groups": [],\n\ |
|
"templates": [],\n\ |
|
"root": null\n\ |
|
}' > /app/agents/voice_agent.json |
|
|
|
RUN echo '{\n\ |
|
"nodes": [],\n\ |
|
"edges": [],\n\ |
|
"groups": [],\n\ |
|
"templates": [],\n\ |
|
"root": null\n\ |
|
}' > /app/agents/chat_agent.json |
|
|
|
|
|
RUN chmod -R 777 /app |
|
|
|
|
|
COPY app.py /app/app.py |
|
RUN chmod +x /app/app.py |
|
|
|
|
|
EXPOSE 7860 8080 3000 |
|
|
|
|
|
ENTRYPOINT ["python3", "/app/app.py"] |
|
|