From d92d67ebdcae0b1f1a121725d82668dc8a8f8588 Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 5 Mar 2026 22:32:27 -0600 Subject: [PATCH] feat: Dockerfiles and compose files for agent and server Co-Authored-By: Claude Opus 4.6 --- Dockerfile.server | 15 +++++++++++++++ deploy/agent/docker-compose.yml | 22 ++++++++++++++++++++++ deploy/server/docker-compose.yml | 25 +++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 Dockerfile.server create mode 100644 deploy/agent/docker-compose.yml create mode 100644 deploy/server/docker-compose.yml diff --git a/Dockerfile.server b/Dockerfile.server new file mode 100644 index 0000000..44c5856 --- /dev/null +++ b/Dockerfile.server @@ -0,0 +1,15 @@ +FROM python:3.12-slim + +WORKDIR /app + +RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* + +COPY server/requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY server/ ./server/ +COPY config.json . + +EXPOSE 8888 + +CMD ["uvicorn", "server.main:app", "--host", "0.0.0.0", "--port", "8888"] diff --git a/deploy/agent/docker-compose.yml b/deploy/agent/docker-compose.yml new file mode 100644 index 0000000..d8e06bc --- /dev/null +++ b/deploy/agent/docker-compose.yml @@ -0,0 +1,22 @@ +services: + farm-agent: + image: 127.0.0.1:5050/farm-agent:latest + container_name: farm-agent + restart: unless-stopped + ports: + - "8889:8889" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + mem_limit: 128M + memswap_limit: 128M + healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost:8889/health || exit 1"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s + logging: + driver: "json-file" + options: + max-size: "50m" + max-file: "3" diff --git a/deploy/server/docker-compose.yml b/deploy/server/docker-compose.yml new file mode 100644 index 0000000..9539fff --- /dev/null +++ b/deploy/server/docker-compose.yml @@ -0,0 +1,25 @@ +services: + farm-manager: + image: 127.0.0.1:5050/farm-manager:latest + container_name: farm-manager + restart: unless-stopped + ports: + - "8888:8888" + environment: + - CONFIG_PATH=/app/config.json + - GROUPS_PATH=/data/groups.json + volumes: + - /mnt/docker-data/configs/farm-manager:/data + mem_limit: 256M + memswap_limit: 256M + healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost:8888/health || exit 1"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s + logging: + driver: "json-file" + options: + max-size: "50m" + max-file: "3"