Updated docker setup

This commit is contained in:
SwiftyOS
2024-09-09 17:57:59 +02:00
parent 3608e5d00d
commit c95b3ad15d
8 changed files with 5675 additions and 132 deletions

View File

@@ -1,6 +1,6 @@
NEXT_PUBLIC_AGPT_SERVER_URL=http://localhost:8000/api
NEXT_PUBLIC_AGPT_WS_SERVER_URL=ws://localhost:8001/ws
NEXT_PUBLIC_AGPT_MARKETPLACE_URL=http://localhost:8001/api/v1/market
NEXT_PUBLIC_AGPT_MARKETPLACE_URL=http://localhost:8005/api/v1/market
## Supabase credentials
## YOU ONLY NEED THEM IF YOU WANT TO USE SUPABASE USER AUTHENTICATION

View File

@@ -1,19 +1,19 @@
# Base stage for both dev and prod
FROM node:21-alpine AS base
WORKDIR /app
COPY autogpt_builder/package.json autogpt_builder/yarn.lock ./
COPY rnd/autogpt_builder/package.json rnd/autogpt_builder/yarn.lock ./
RUN yarn install --frozen-lockfile
# Dev stage
FROM base AS dev
ENV NODE_ENV=development
COPY autogpt_builder/ .
COPY rnd/autogpt_builder/ .
EXPOSE 3000
CMD ["npm", "run", "dev"]
CMD ["yarn", "run", "dev"]
# Build stage for prod
FROM base AS build
COPY autogpt_builder/ .
COPY rnd/autogpt_builder/ .
RUN npm run build
# Prod stage

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
FROM python:3.11-slim-buster as server_base
FROM python:3.11-slim-buster AS server_base
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
@@ -23,29 +23,32 @@ ENV POETRY_VERSION=1.8.3 \
PATH="$POETRY_HOME/bin:$PATH"
RUN pip3 install poetry
FROM server_base AS server_dependencies
RUN mkdir -p /app/autogpt
RUN mkdir -p /app/forge
RUN mkdir -p /app/rnd/autogpt_libs
RUN mkdir -p /app/rnd/autogpt_server
COPY autogpt /app/autogpt
COPY forge /app/forge
COPY rnd/autogpt_libs /app/rnd/autogpt_libs
COPY rnd/autogpt_server/poetry.lock rnd/autogpt_server/pyproject.toml /app/rnd/autogpt_server/
WORKDIR /app/rnd/autogpt_server
COPY rnd/autogpt_server/pyproject.toml rnd/autogpt_server/poetry.lock ./
RUN poetry install --no-interaction --no-ansi
FROM server_dependencies AS server_prisma
COPY rnd/autogpt_server/schema.prisma ./
RUN poetry run prisma generate
FROM server_prisma AS server
COPY rnd/autogpt_server /app/rnd/autogpt_server
FROM server_base as server
ENV DATABASE_URL=""
ENV PORT=8000
ENV DATABASE_URL=""
CMD ["poetry", "run", "rest"]
FROM server_base as manager
ENV PORT=8002
ENV DATABASE_URL=""
CMD ["poetry", "run", "manager"]

View File

@@ -1,48 +0,0 @@
FROM python:3.11-slim-buster as server_base
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
RUN apt-get update \
&& apt-get install -y build-essential curl ffmpeg wget libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& wget https://github.com/git/git/archive/v2.28.0.tar.gz -O git.tar.gz \
&& tar -zxf git.tar.gz \
&& cd git-* \
&& make prefix=/usr all \
&& make prefix=/usr install
ENV POETRY_VERSION=1.8.3 \
POETRY_HOME="/opt/poetry" \
POETRY_NO_INTERACTION=1 \
POETRY_VIRTUALENVS_CREATE=false \
PATH="$POETRY_HOME/bin:$PATH"
RUN pip3 install poetry
COPY autogpt /app/autogpt
COPY forge /app/forge
COPY rnd/autogpt_libs /app/rnd/autogpt_libs
WORKDIR /app/rnd/autogpt_server
COPY rnd/autogpt_server/pyproject.toml rnd/autogpt_server/poetry.lock ./
RUN poetry install --no-interaction --no-ansi
COPY rnd/autogpt_server/schema.prisma ./
RUN poetry run prisma generate
COPY rnd/autogpt_server /app/rnd/autogpt_server
FROM server_base as server
FROM server_base as server
ENV PORT=8001
ENV DATABASE_URL=""
CMD ["poetry", "run", "ws"]

View File

@@ -1,4 +1,3 @@
version: "3"
services:
postgres:
image: ankane/pgvector:latest
@@ -16,6 +15,14 @@ services:
networks:
- app-network
server_base:
build:
context: ../
dockerfile: rnd/autogpt_server/Dockerfile
target: server
image: autogpt_server:latest
command: ["echo", "This is a base image and should not be run directly"]
redis:
image: redis:latest
command: redis-server --requirepass password
@@ -24,11 +31,9 @@ services:
networks:
- app-network
rest_server:
build:
context: ../
dockerfile: rnd/autogpt_server/Dockerfile
target: server
api_srv:
image: autogpt_server:latest
command: ["poetry", "run", "rest"]
develop:
watch:
- path: ./
@@ -48,16 +53,15 @@ services:
- PYRO_HOST=0.0.0.0
- EXECUTIONMANAGER_HOST=executor
- EXECUTIONSCHEDULER_HOST=execution_scheduler
- PORT=8000
ports:
- "8000:8000"
networks:
- app-network
executor:
build:
context: ../
dockerfile: rnd/autogpt_server/Dockerfile
target: manager
image: autogpt_server:latest
command: ["poetry", "run", "executor"]
develop:
watch:
- path: ./
@@ -76,15 +80,15 @@ services:
- AUTH_ENABLED=false
- PYRO_HOST=0.0.0.0
- AGENTSERVER_HOST=agent_server
- PORT=8002
ports:
- "8002:8002"
networks:
- app-network
ws_server:
build:
context: ../
dockerfile: rnd/autogpt_server/Dockerfile.ws
ws_srv:
image: autogpt_server:latest
command: ["poetry", "run", "ws"]
develop:
watch:
- path: ./
@@ -100,11 +104,43 @@ services:
- REDIS_PASSWORD=password
- AUTH_ENABLED=false
- PYRO_HOST=0.0.0.0
- PORT=8001
ports:
- "8001:8001"
networks:
- app-network
market:
build:
context: ../
dockerfile: rnd/market/Dockerfile
depends_on:
- postgres
environment:
- DATABASE_URL=postgresql://agpt_user:pass123@postgres:5432/agpt_local
ports:
- "8015:8015"
networks:
- app-network
frontend:
build:
context: ../
dockerfile: rnd/autogpt_builder/Dockerfile
target: dev
depends_on:
- postgres
- api_srv
- ws_srv
environment:
- DATABASE_URL=postgresql://agpt_user:pass123@postgres:5432/agpt_local
- NEXT_PUBLIC_AGPT_SERVER_URL=http://localhost:8000/api
- NEXT_PUBLIC_AGPT_WS_SERVER_URL=ws://localhost:8001/ws
- NEXT_PUBLIC_AGPT_MARKETPLACE_URL=http://localhost:8005/api/v1/market
ports:
- "3000:3000"
networks:
- app-network
networks:
app-network:
driver: bridge

View File

@@ -1,10 +1,9 @@
FROM python:3.11-slim-buster as server_base
FROM python:3.11-slim-buster AS server_base
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
RUN apt-get update \
@@ -25,19 +24,31 @@ ENV POETRY_VERSION=1.8.3 \
PATH="$POETRY_HOME/bin:$PATH"
RUN pip3 install poetry
COPY rnd/market /app/rnd/market
FROM server_base AS server_dependencies
RUN mkdir -p /app/autogpt
RUN mkdir -p /app/forge
RUN mkdir -p /app/rnd/autogpt_libs
RUN mkdir -p /app/rnd/market
COPY rnd/autogpt_libs /app/rnd/autogpt_libs
COPY rnd/market/poetry.lock rnd/market/pyproject.toml /app/rnd/market/
WORKDIR /app/rnd/market
# Install dependencies
RUN poetry install --no-interaction --no-ansi
FROM server_dependencies AS server_prisma
# Need the market/utils/partial_types.py
COPY rnd/market /app/rnd/market
COPY rnd/market/schema.prisma ./
RUN poetry run prisma generate
FROM server_base as server
FROM server_prisma AS server
ENV PORT=8000
ENV PORT=8005
ENV DATABASE_URL=""
CMD ["poetry", "run", "app"]

View File

@@ -58,7 +58,8 @@ def format():
def app():
run("uvicorn", "market.app:app", "--reload", "--port", "8001")
port = os.getenv("PORT", "8015")
run("uvicorn", "market.app:app", "--reload", "--port", port)
def setup():