Docker Directory
July 8, 2026 · View on GitHub
This directory contains all Docker-related files for PowerMem Server.
中文快速部署说明见 README_CN.md.
Files
Dockerfile- Multi-stage Docker build file for PowerMem Serverdocker-compose.yml- Docker Compose configuration file with seekdb supportdocker-entrypoint.sh- Container entrypoint script.dockerignore- Files to exclude from Docker build contextDOCKER.md- Complete Docker deployment documentation
Quick Start
Prepare the Compose configuration file first:
cp .env.example docker/.env
# Edit docker/.env and set the LLM provider, model, API key, and base URL you use.
Build Docker Image
From the project root directory:
docker build -t oceanbase/powermem-server:latest -f docker/Dockerfile .
Run with Docker Compose (with seekdb)
From the project root directory:
# Without password (default)
docker compose -f docker/docker-compose.yml up -d --build
# With password (set via command line)
SEEKDB_ROOT_PASSWORD=your_password docker compose -f docker/docker-compose.yml up -d --build
# Alternatively, export the variable first
export SEEKDB_ROOT_PASSWORD=your_password
docker compose -f docker/docker-compose.yml up -d --build
# Verify the API server
curl http://localhost:8848/api/v1/system/health
# View logs and stop the stack
docker compose -f docker/docker-compose.yml logs -f powermem-server
docker compose -f docker/docker-compose.yml down
Compose loads docker/.env through env_file for LLM, embedding, server, and other application settings. It intentionally sets DATABASE_PROVIDER and OCEANBASE_* to the bundled seekdb container; use single-container deployment or a custom Compose override when connecting to an existing database service.
Run with Docker
From the project root directory:
docker run -d \
--name powermem-server \
-p 8848:8848 \
-v $(pwd)/.env:/app/.env:ro \
--env-file .env \
oceanbase/powermem-server:latest
Services
PowerMem Server
- Port: 8848
- Health check:
http://localhost:8848/api/v1/system/health - Database: Connected to bundled seekdb; password is controlled by
SEEKDB_ROOT_PASSWORD
seekdb Database
- MySQL Port: 2881
- seekdb Web Dashboard: 2886
- Data persistence: Docker volume
docker_seekdb_data - Default database:
powermem - Password: Controlled by
SEEKDB_ROOT_PASSWORDenvironment variable- Not set (default): No password
- Set via command line: Use specified password
Connecting to seekdb
Without password (default)
mysql -h 127.0.0.1 -P 2881 -u root
With password (if SEEKDB_ROOT_PASSWORD is set)
mysql -h 127.0.0.1 -P 2881 -u root -p
# Enter the password when prompted
seekdb Web Dashboard
Open browser to: http://localhost:2886
- Username:
root - Password: Same as
SEEKDB_ROOT_PASSWORDenvironment variable (not set by default)
Default Configuration
The docker-compose.yml file includes default configuration values:
PowerMem Server:
- Host:
0.0.0.0 - Port:
8848 - Workers:
4 - Authentication: Disabled
- CORS: Enabled for all origins
seekdb:
- Password: Controlled by
SEEKDB_ROOT_PASSWORDenvironment variable (not set by default) - CPU: 4 cores
- Memory: 4GB
- Database:
powermem - Data persistence: Docker volume
Documentation
For detailed documentation, see DOCKER.md.
Notes
- All Docker commands should be run from the project root directory, not from the
docker/directory - The build context is the project root, so paths in Dockerfile are relative to the project root
- The Compose
.envfile should be copied todocker/.env; Docker Compose loads it throughenv_file - seekdb data is persisted in a Docker volume named
docker_seekdb_data - On macOS with Docker version > 4.9.0, there are known issues with seekdb. Consider using an older Docker version if needed.
- Password Management:
- Default: No password (
SEEKDB_ROOT_PASSWORDnot set) - To set a password: Use command line:
SEEKDB_ROOT_PASSWORD=your_password docker compose -f docker/docker-compose.yml up -d --build - Password change: Stop services, set new password via command line, restart services
- Default: No password (