Skip to content

Commit 6647168

Browse files
authored
Merge pull request #6 from itomek/issue-3-remove-docker-compose
Remove Docker Compose support and default LEMONADE_BASE_URL
2 parents b5f41d7 + d4880ac commit 6647168

8 files changed

Lines changed: 86 additions & 226 deletions

File tree

.claude/agents/docker-specialist.md

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ This project provides a Docker container for GAIA (AMD's AI agent platform), bui
99
## Key Files
1010

1111
- **Dockerfile** - Multi-stage container definition
12-
- **docker-compose.yml** - Development orchestration
1312
- **entrypoint.sh** - Runtime initialization script
1413

1514
## Dockerfile Architecture
@@ -67,36 +66,22 @@ ENV TZ="$TZ"
6766
**Environment variables:**
6867
- `GAIA_VERSION` - Version to install (default: 0.15.1)
6968
- `SKIP_INSTALL` - Skip installation for faster restarts (default: false)
70-
- `LEMONADE_BASE_URL` - Lemonade API endpoint (default: http://localhost:5000/api/v1)
69+
- `LEMONADE_BASE_URL` - Lemonade API endpoint (required)
7170

72-
## Docker Compose Configuration
73-
74-
**Service:** gaia-dev
75-
76-
**Key configuration:**
77-
- Image naming: `itomek/gaia-dev:{VERSION}`
78-
- Container name: Customizable via `CONTAINER_NAME` env var
79-
- Resource limits: 4 CPUs, 8GB memory (adjustable)
80-
- Optional host directory mounting via `HOST_DIR`
81-
- Interactive mode: tty + stdin_open for shell access
82-
83-
**Environment variables:**
84-
- `LEMONADE_BASE_URL` - Lemonade server configuration
85-
- `SKIP_INSTALL` - Control GAIA installation behavior
8671

8772
## Common Tasks
8873

8974
### Building Images
9075

9176
```bash
9277
# Default version (from Dockerfile)
93-
docker build -t gaia-dev .
78+
docker build -t gaia-linux .
9479

9580
# Specific GAIA version
96-
docker build --build-arg GAIA_VERSION=0.15.1 -t gaia-dev:0.15.1 .
81+
docker build --build-arg GAIA_VERSION=0.15.1 -t gaia-linux:0.15.1 .
9782

9883
# Different timezone
99-
docker build --build-arg TZ=UTC -t gaia-dev .
84+
docker build --build-arg TZ=UTC -t gaia-linux .
10085
```
10186

10287
### Multi-Architecture Builds
@@ -107,21 +92,28 @@ The project supports linux/amd64 and linux/arm64:
10792
docker buildx build \
10893
--platform linux/amd64,linux/arm64 \
10994
--build-arg GAIA_VERSION=0.15.1 \
110-
-t itomek/gaia-dev:0.15.1 \
95+
-t itomek/gaia-linux:0.15.1 \
11196
--push .
11297
```
11398

11499
### Development Workflow
115100

116101
```bash
117102
# Start container
118-
docker-compose up -d
103+
docker run -dit \
104+
--name gaia-linux \
105+
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
106+
itomek/gaia-linux:0.15.1
119107

120108
# Access shell
121-
docker exec -it gaia-dev zsh
109+
docker exec -it gaia-linux zsh
122110

123111
# Fast restart (skip GAIA installation)
124-
SKIP_INSTALL=true docker-compose up -d
112+
docker run -dit \
113+
--name gaia-linux \
114+
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
115+
-e SKIP_INSTALL=true \
116+
itomek/gaia-linux:0.15.1
125117
```
126118

127119
## Best Practices for This Project

.cursor/rules/docker.mdc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
description: Docker and container-specific rules
33
globs:
44
- Dockerfile
5-
- docker-compose.yml
65
- entrypoint.sh
76
---
87

.cursor/rules/index.mdc

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@ alwaysApply: true
99
This is a Linux Docker container for AMD GAIA (AI framework). GAIA is installed from PyPI at container startup.
1010

1111
## Tech Stack
12-
- **Base**: Docker & Docker Compose
12+
- **Base**: Docker
1313
- **Python**: 3.12+ (managed with uv for fast package installation)
1414
- **Package Manager**: uv (10-100x faster than pip)
1515
- **Shell**: zsh (inside container)
1616
- **Target Application**: AMD GAIA framework
1717

1818
## Key Files
1919
- `Dockerfile`: Container image definition with Python 3.12 and tools
20-
- `docker-compose.yml`: Service configuration with environment variables
2120
- `entrypoint.sh`: Container startup script (installs GAIA from PyPI)
2221
- `pyproject.toml`: Python project configuration with test dependencies
2322
- `tests/`: Integration and unit tests using pytest
@@ -28,10 +27,10 @@ This is a Linux Docker container for AMD GAIA (AI framework). GAIA is installed
2827
- Uses uv for Python package installation (much faster than pip)
2928

3029
## Environment Variables
31-
Key env vars in docker-compose.yml:
32-
- `LEMONADE_BASE_URL`: Lemonade server base URL (default: http://localhost:5000/api/v1)
33-
- `GAIA_VERSION`: GAIA version to install from PyPI
34-
- `SKIP_INSTALL`: Skip pip install on restart (faster startup)
30+
Key environment variables for container:
31+
- `LEMONADE_BASE_URL`: Lemonade server base URL (required)
32+
- `GAIA_VERSION`: GAIA version to install from PyPI (default: 0.15.1)
33+
- `SKIP_INSTALL`: Skip pip install on restart (faster startup, default: false)
3534

3635
## Important Notes
3736
- This is a Linux container for GAIA

README.md

Lines changed: 33 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ GAIA Linux container for [AMD GAIA](https://github.com/amd/gaia). GAIA is instal
1818
### Prerequisites
1919

2020
- Docker installed
21-
- Lemonade base URL (e.g., `http://localhost:5000/api/v1` or your server URL)
21+
- Lemonade server base URL
2222

2323
### 1. Pull the Image
2424

@@ -36,20 +36,7 @@ docker pull itomek/gaia-linux:0.15.2 # When available
3636

3737
### 2. Run the Container
3838

39-
**Option A: With Local Lemonade Server**
40-
41-
If you have a Lemonade server running locally:
42-
43-
```bash
44-
docker run -dit \
45-
--name gaia-linux \
46-
-e LEMONADE_BASE_URL=http://localhost:5000/api/v1 \
47-
itomek/gaia-linux:0.15.1
48-
```
49-
50-
**Option B: With Remote Lemonade Server**
51-
52-
If you need to use a remote Lemonade server, set the `LEMONADE_BASE_URL` environment variable to your server's URL:
39+
Set the `LEMONADE_BASE_URL` environment variable to your Lemonade server:
5340

5441
```bash
5542
docker run -dit \
@@ -58,30 +45,7 @@ docker run -dit \
5845
itomek/gaia-linux:0.15.1
5946
```
6047

61-
**Note**: You can set any environment variable using the `-e` flag. See the [Environment Variables](#environment-variables) section below for all available options.
62-
63-
**Option C: Using Docker Compose**
64-
65-
Create a `docker-compose.yml`:
66-
67-
```yaml
68-
version: '3.8'
69-
70-
services:
71-
gaia-linux:
72-
image: itomek/gaia-linux:0.15.1
73-
container_name: gaia-linux
74-
environment:
75-
- LEMONADE_BASE_URL=http://localhost:5000/api/v1 # Required
76-
tty: true
77-
stdin_open: true
78-
```
79-
80-
Then run:
81-
82-
```bash
83-
docker compose up -d
84-
```
48+
You can set any environment variable using the `-e` flag. See the [Environment Variables](#environment-variables) section below for all available options.
8549

8650
### 3. Connect to Container
8751

@@ -99,34 +63,29 @@ For the rest of GAIA usage, see https://github.com/AMD/GAIA
9963

10064
## Environment Variables
10165

102-
You can configure the container using environment variables. Set them using the `-e` flag with `docker run` or inline with `docker compose`.
66+
You can configure the container using environment variables. Set them using the `-e` flag with `docker run`.
10367

10468
| Variable | Default | Description |
10569
|----------|---------|-------------|
106-
| `LEMONADE_BASE_URL` | **(required)** | Lemonade server base URL for GAIA LLM features. Example: `http://localhost:5000/api/v1` |
70+
| `LEMONADE_BASE_URL` | **(required)** | Lemonade server base URL for GAIA LLM features. |
10771
| `GAIA_VERSION` | `0.15.1` | GAIA version to install from PyPI. Usually matches the image tag, but can be overridden. |
10872
| `SKIP_INSTALL` | `false` | Skip package installation on startup (faster restarts). |
10973

11074
### Setting Environment Variables
11175

112-
**With docker run:**
76+
Use the `-e` flag with `docker run`:
11377
```bash
11478
docker run -dit \
11579
--name gaia-linux \
11680
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
11781
itomek/gaia-linux:0.15.1
11882
```
11983

120-
**With docker compose:**
121-
```bash
122-
LEMONADE_BASE_URL=https://your-server.com/api/v1 docker compose up -d
123-
```
124-
12584
### Lemonade URL Examples
12685

127-
Start your Lemonade server separately, then set `LEMONADE_BASE_URL` to its API endpoint.
86+
Start your Lemonade server separately, then set `LEMONADE_BASE_URL` to its API endpoint:
12887

129-
- **Local Lemonade server**: `http://localhost:5000/api/v1`
88+
- **Local server**: `http://localhost:5000/api/v1`
13089
- **Remote server**: `https://your-remote-server.com/api/v1`
13190

13291
### External Lemonade
@@ -198,39 +157,47 @@ Follow the same instructions as above, but use your locally built image.
198157
### Spawn Multiple Containers
199158

200159
```bash
201-
# Default container
202-
docker compose up -d
203-
204-
# Second container (different name)
205-
CONTAINER_NAME=gaia-feature \
206-
docker compose up -d
160+
# First container
161+
docker run -dit \
162+
--name gaia-linux-main \
163+
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
164+
itomek/gaia-linux:0.15.1
207165

208-
# Third container (different name)
209-
CONTAINER_NAME=gaia-myfork \
210-
docker compose up -d
166+
# Second container
167+
docker run -dit \
168+
--name gaia-linux-feature \
169+
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
170+
itomek/gaia-linux:0.15.1
211171
```
212172

213173
### Connect to Specific Container
214174

215175
```bash
216-
docker exec -it gaia-feature zsh
176+
docker exec -it gaia-linux-feature zsh
217177
```
218178

219179
### Destroy and Recreate
220180

221181
```bash
222182
# Stop and remove
223-
docker compose down
183+
docker stop gaia-linux-main && docker rm gaia-linux-main
224184

225-
# Recreate fresh (fast with uv: ~2-3 minutes)
226-
docker compose up -d
185+
# Recreate fresh
186+
docker run -dit \
187+
--name gaia-linux-main \
188+
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
189+
itomek/gaia-linux:0.15.1
227190
```
228191

229192
### Mount Host Directory for File Exchange
230193

231194
```bash
232195
# Mount ~/Public to /host in container
233-
HOST_DIR=/Users/yourname/Public docker compose up -d
196+
docker run -dit \
197+
--name gaia-linux \
198+
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
199+
-v /Users/yourname/Public:/host \
200+
itomek/gaia-linux:0.15.1
234201

235202
# Inside container
236203
ls /host
@@ -241,11 +208,11 @@ ls /host
241208
```
242209
┌─────────────────────────────────────────────────────────────┐
243210
│ Docker Hub │
244-
│ itomek/gaia-linux:0.15.1
211+
│ itomek/gaia-linux:0.15.1 │
245212
│ (Python 3.12 + Node.js + tools) │
246213
└─────────────────────────────────────────────────────────────┘
247214
248-
│ docker compose up
215+
│ docker run
249216
250217
┌─────────────────────────────────────────────────────────────┐
251218
│ Container Start │
@@ -319,10 +286,7 @@ The container uses **uv** for Python package installation, which is 10-100x fast
319286

320287
```bash
321288
# Check logs
322-
docker compose logs
323-
324-
# Check container logs
325-
docker compose logs
289+
docker logs gaia-linux
326290
```
327291

328292
### GAIA Install Fails
@@ -337,21 +301,9 @@ docker exec -it gaia-linux bash -c "uv pip install --system 'amd-gaia[dev,mcp,ev
337301

338302
## Advanced Usage
339303

340-
### Configure Lemonade Server
341-
342-
**LEMONADE_BASE_URL is required** - set it to your Lemonade server's API endpoint.
343-
344-
```bash
345-
LEMONADE_BASE_URL=https://your-server.com/api/v1 docker compose up -d
346-
```
347-
348304
### Build Image Locally
349305

350306
```bash
351-
# Build from Dockerfile
352-
docker compose build
353-
354-
# Or with docker directly
355307
docker build -t gaia-linux:local .
356308
```
357309

dev.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,15 @@ The CI workflow:
9393
### Quick Manual Test
9494

9595
```bash
96-
docker compose up -d
97-
docker compose logs -f
96+
docker run -dit \
97+
--name gaia-linux-test \
98+
-e LEMONADE_BASE_URL=http://localhost:5000/api/v1 \
99+
itomek/gaia-linux:0.15.1
100+
101+
docker logs -f gaia-linux-test
98102
# Wait for "Ready for development"
99-
docker exec -it gaia-dev zsh -c "gaia --version"
100-
docker compose down
103+
docker exec -it gaia-linux-test zsh -c "gaia --version"
104+
docker stop gaia-linux-test && docker rm gaia-linux-test
101105
```
102106

103107
### Automated Testing

docker-compose.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)