Complete Docker containerization with hot reload and MCP HTTP transport.
- Docker Desktop or Docker Engine 20.10+
- Docker Compose 1.29+ (or
docker composeplugin) - Markdown ticket projects configured in
~/.config/markdown-ticket/
./bin/dc up # Start in foreground
./bin/dc up -d # Start in background- Frontend: http://localhost:5174
- MCP: http://localhost:3012/mcp
- Health:
curl http://localhost:3012/health
HTTP transport (recommended):
claude mcp add --scope user --transport http mdt-all http://localhost:3012/mcpSTDIO transport (via Docker):
claude mcp remove mdt-all --scope user # delete existing if needed
claude mcp add --scope user mdt-all docker -- exec --env MCP_HTTP_ENABLED=false -i markdown-ticket-mcp node /app/mcp-server/dist/index.js# Start/Stop
./bin/dc up -d [--build] [--force-recreate] # Start
./bin/dc down # Stop
# Logs
./bin/dc logs -f # All logs
./bin/dc logs -f backend # Specific service
# Rebuild
./bin/dc build # Rebuild all
./bin/dc build frontend # Rebuild specificNote: Commands use MDT_DOCKER_MODE (default: prod). Set MDT_DOCKER_MODE=dev for development mode.
| Aspect | Dev (MDT_DOCKER_MODE=dev) |
Prod (default) |
|---|---|---|
| Hot Reload | Yes | No |
| Port | 5174 | 80 |
| Use Case | Active development | Deployment/testing |
For mounting your local project, use docker-compose.override.yml(or declare MDT_DOCKER_PROJECTS_YML=docker-compose.my.yml .env.local):
# Copy the sample
cp docker-compose.override.sample.yml docker-compose.override.yml
# Edit with your project paths
vim docker-compose.override.ymlThe override file is automatically loaded by ./bin/dc. Example:
x-shared-volumes: &project-volumes
volumes:
- ~/my-project:/projects/my-project
services:
backend:
<<: *project-volumes
mcp:
<<: *project-volumesFor advanced configuration (security, rate limiting, custom volumes), see docs/DOCKER_REFERENCE.md.
Containers won't start:
docker info # Check Docker daemon
./bin/dc logs # View errors
./bin/dc down -v && ./bin/dc build --no-cache && ./bin/dc upPort conflicts:
lsof -i :5174 # Frontend
lsof -i :3012 # MCPFile watching not working:
- Verify volume mounts in
docker-compose.dev.yml - Check
CHOKIDAR_USEPOLLING=trueis set - Restart:
./bin/dc restart
Configure LLM clients (Claude Desktop, etc.):
{
"mcpServers": {
"markdown-ticket": {
"url": "http://localhost:3012/mcp",
"transport": "http"
}
}
}For detailed MCP endpoints, session management, and advanced features, see docs/DOCKER_REFERENCE.md.
- docs/DOCKER_GUIDE.md - Implementation patterns, configuration management
- docs/DOCKER_REFERENCE.md - Technical reference, port mappings, advanced troubleshooting
- MDT-055 - Docker Architecture CR
- MDT-074 - MCP HTTP Transport CR
- Docker Documentation