chore(docker): drop stale local Dockerfiles, simplify dev overlay (#237)
Removes `docker/agent/Dockerfile` and `docker/workspace/Dockerfile`: - `docker/agent/Dockerfile` cloned the wrong repo (`outsourc-e/hermes-agent` is the workspace fork, not the agent) and ran the old `claude` binary name. It would not build successfully. - `docker/workspace/Dockerfile` was a dev-mode (`pnpm dev`) variant that duplicated the production root `Dockerfile` for no benefit; the dev overlay now reuses the root Dockerfile with hot-build instead. Updates `docker-compose.dev.yml` to build only the workspace from local source via the canonical root Dockerfile. The Hermes Agent service stays on the canonical `nousresearch/hermes-agent:latest` upstream image (~750k pulls), with a clear note in the overlay header explaining how to override if a custom agent image is genuinely needed. Adds a quick-start path table at the top of README pointing 'compose gig' users straight at the Docker section, and rewrites the dev-overlay section to match the simpler reality. This addresses the recurring 'can we get a docker image so I can set up a compose gig instead of building from source' community ask. The image already exists at `ghcr.io/outsourc-e/hermes-workspace:latest`, the compose file just works \u2014 the stale local Dockerfiles were the only thing making the dev overlay confusing. Co-authored-by: Aurora release bot <release@outsourc-e.com>
This commit is contained in:
21
README.md
21
README.md
@@ -72,7 +72,15 @@ Start here: [docs/swarm/](./docs/swarm/)
|
|||||||
|
|
||||||
## 🚀 Quick Start
|
## 🚀 Quick Start
|
||||||
|
|
||||||
### One-line install (recommended)
|
Three paths — pick the one that matches you:
|
||||||
|
|
||||||
|
| Path | Best for | Time |
|
||||||
|
|---|---|---|
|
||||||
|
| **🐳 [Docker Compose](#-docker-quickstart)** | Self-hosters, home labs, "give me a compose gig" | ~2 min |
|
||||||
|
| **🌐 One-line install** | Local dev on macOS/Linux | ~3 min |
|
||||||
|
| **🔌 Attach to existing `hermes-agent`** | You already run Hermes Agent | ~1 min |
|
||||||
|
|
||||||
|
### One-line install
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://raw.githubusercontent.com/outsourc-e/hermes-workspace/main/install.sh | bash
|
curl -fsSL https://raw.githubusercontent.com/outsourc-e/hermes-workspace/main/install.sh | bash
|
||||||
@@ -372,14 +380,19 @@ Open `http://localhost:3000` and complete the onboarding.
|
|||||||
|
|
||||||
### Building from source
|
### Building from source
|
||||||
|
|
||||||
Want to hack on the workspace or the bundled agent Dockerfile? Use the dev overlay:
|
Want to hack on the workspace and have local changes hot-built into the
|
||||||
|
container? Use the dev overlay:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
||||||
```
|
```
|
||||||
|
|
||||||
The base `docker-compose.yml` stays untouched — the overlay adds `build:` blocks
|
The base `docker-compose.yml` stays untouched — the overlay adds a `build:`
|
||||||
that take priority over `image:`, so both services compile from local source.
|
block for the `hermes-workspace` service so the local repo is compiled
|
||||||
|
instead of pulled. The Hermes Agent service still uses the canonical
|
||||||
|
`nousresearch/hermes-agent:latest` image; if you need a custom agent
|
||||||
|
build, tag it locally and override `image:` in your own
|
||||||
|
`compose.override.yml`.
|
||||||
|
|
||||||
### Using a Pre-Built Image (Coolify / Easypanel / Dokploy / Unraid)
|
### Using a Pre-Built Image (Coolify / Easypanel / Dokploy / Unraid)
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,26 @@
|
|||||||
# Hermes Workspace + Agent — Development Overlay
|
# Hermes Workspace — Development Overlay
|
||||||
#
|
#
|
||||||
# Builds both services from source instead of pulling pre-built images.
|
# Builds the Workspace image from local source instead of pulling the
|
||||||
# Use when modifying the workspace or the bundled agent Dockerfile.
|
# pre-built GHCR image. Use when iterating on Workspace code (server,
|
||||||
|
# routes, UI) and you want changes to land in the container without
|
||||||
|
# publishing a release first.
|
||||||
|
#
|
||||||
|
# The Hermes Agent service still uses the canonical upstream image
|
||||||
|
# (nousresearch/hermes-agent:latest, ~750k pulls) — there is no need to
|
||||||
|
# rebuild that locally, and doing so just couples the compose stack to
|
||||||
|
# whatever vendored Python the workspace happens to ship. If you really
|
||||||
|
# need a custom agent image, build/tag it separately and override the
|
||||||
|
# `image:` field in your own .override.yml.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
||||||
#
|
#
|
||||||
# The base docker-compose.yml stays untouched for a regular install-and-run.
|
# The base docker-compose.yml stays untouched for a regular install-and-run.
|
||||||
# When this overlay is merged in, `build:` takes priority over `image:` for
|
# When this overlay is merged in, `build:` takes priority over `image:` for
|
||||||
# each service, so source code is compiled locally and tagged with the
|
# the workspace service so local source is compiled instead of pulled.
|
||||||
# upstream image name.
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
hermes-agent:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker/agent/Dockerfile
|
|
||||||
|
|
||||||
hermes-workspace:
|
hermes-workspace:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: docker/workspace/Dockerfile
|
dockerfile: ./Dockerfile
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
FROM python:3.11-slim
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends curl git \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN git clone https://github.com/outsourc-e/hermes-agent.git /app
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
RUN pip install --no-cache-dir -e .
|
|
||||||
|
|
||||||
EXPOSE 8642
|
|
||||||
|
|
||||||
CMD ["claude", "gateway", "run"]
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
FROM node:22-slim
|
|
||||||
|
|
||||||
RUN npm install -g pnpm
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
COPY package.json pnpm-lock.yaml* ./
|
|
||||||
|
|
||||||
RUN pnpm install --no-frozen-lockfile
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
ENV HERMES_API_URL=http://hermes-agent:8642
|
|
||||||
|
|
||||||
EXPOSE 3000
|
|
||||||
|
|
||||||
CMD ["pnpm", "dev", "--host", "0.0.0.0", "--port", "3000"]
|
|
||||||
Reference in New Issue
Block a user