| 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 pip3 install requests |
|
|
| |
| 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 |
|
|
| |
| RUN useradd -m -u 1000 -s /bin/bash tenuser |
|
|
| |
| 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 && \ |
| mkdir -p /app/backup && \ |
| mkdir -p /app/mock-api && \ |
| chown -R tenuser:tenuser /app && \ |
| chown -R tenuser:tenuser /tmp/ten_agent |
|
|
| |
| COPY .env /app/.env |
| RUN chown tenuser:tenuser /app/.env |
|
|
| |
| RUN echo '{\n "success": true,\n "packages": [\n {\n "name": "default",\n "description": "Default package",\n "graphs": [\n {\n "name": "Voice Agent",\n "description": "Voice Agent with OpenAI",\n "file": "voice_agent.json",\n "id": "voice_agent",\n "package": "default"\n },\n {\n "name": "Chat Agent",\n "description": "Chat Agent",\n "file": "chat_agent.json",\n "id": "chat_agent",\n "package": "default"\n }\n ]\n }\n ]\n}' > /app/mock-api/designer-packages.json |
|
|
| |
| RUN echo 'module.exports = { \ |
| async rewrites() { \ |
| return [ \ |
| { \ |
| source: "/api/designer/:path*", \ |
| destination: "http://localhost:8080/api/agents/:path*", \ |
| }, \ |
| { \ |
| source: "/api/dev/:path*", \ |
| destination: "http://localhost:8080/api/agents/:path*", \ |
| }, \ |
| ]; \ |
| }, \ |
| };' > /app/playground/next.config.js |
|
|
| |
| 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 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\ |
| "_ten": {},\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 && \ |
| find /app -type d -exec chmod 777 {} \; && \ |
| find /app -type f -exec chmod 666 {} \; && \ |
| chmod +x /app/server/bin/api |
|
|
| |
| COPY app.py /app/app.py |
| RUN chmod +x /app/app.py && \ |
| chown tenuser:tenuser /app/app.py |
|
|
| |
| USER tenuser |
|
|
| |
| EXPOSE 7860 8080 3000 9090 |
|
|
| |
| ENTRYPOINT ["python3", "/app/app.py"] |
|
|