- Organized 252 files across project - Root directory: 187 → 2 files (98.9% reduction) - Moved configuration guides to docs/04-configuration/ - Moved troubleshooting guides to docs/09-troubleshooting/ - Moved quick start guides to docs/01-getting-started/ - Moved reports to reports/ directory - Archived temporary files - Generated comprehensive reports and documentation - Created maintenance scripts and guides All files organized according to established standards.
3.8 KiB
3.8 KiB
Docker vs Binary Installation - Decision Rationale
Reference: Web3Signer Docker Documentation
Overview
Web3Signer offers two installation methods:
- Binary Distribution (current approach)
- Docker Image (alternative)
Current Approach: Binary Installation in LXC Container
Why We Chose Binary Installation
✅ Simplicity
- Direct installation, no additional layers
- No Docker daemon required
- Simpler systemd service management
✅ LXC Container Compatibility
- LXC containers are already configured and running
- Binary installation integrates naturally with LXC
- Direct file system access
✅ Resource Efficiency
- No container-in-container overhead
- Lower memory footprint
- Faster startup times
✅ System Integration
- Native systemd service support
- Direct log management via journalctl
- Standard Linux process management
✅ Proxmox Integration
- Works seamlessly with Proxmox LXC containers
- Uses standard Proxmox container management tools (
pct) - No additional virtualization layers
Docker Alternative (Not Recommended for Our Use Case)
Docker Installation Would Require
❌ Additional Complexity
- Install Docker daemon in LXC container
- Container-in-container setup (LXC → Docker)
- Docker daemon management and maintenance
❌ Resource Overhead
- Docker daemon requires additional memory
- Two layers of containerization
- More complex networking setup
❌ Integration Challenges
- Need to manage Docker containers within LXC
- More complex systemd integration
- Additional troubleshooting layers
❌ Documentation Example
docker run -p 9000:9000 consensys/web3signer:develop [options]
- Would need to adapt this for LXC environment
- Port mapping, volume mounting, etc. still needed
- Requires Docker runtime installation
Comparison Summary
| Aspect | Binary (Current) | Docker |
|---|---|---|
| Setup Complexity | ✅ Simple | ❌ More complex |
| Resource Usage | ✅ Lower | ❌ Higher |
| LXC Integration | ✅ Native | ⚠️ Container-in-container |
| Service Management | ✅ systemd | ⚠️ Docker + systemd |
| Maintenance | ✅ Standard Linux | ⚠️ Docker + LXC |
| Performance | ✅ Direct | ⚠️ Additional layer |
Recommendation
Continue with Binary Installation
Our current approach (binary installation in LXC container) is optimal because:
- We're already using LXC containers
- Binary installation is simpler and more efficient
- Better integration with existing infrastructure
- Lower resource overhead
- Standard Linux service management
Current Status
- ✅ LXC container (VMID 107) created and running
- ✅ Java 21 installed (required for Web3Signer)
- ✅ Systemd service configured
- ✅ Network configuration complete (192.168.11.111:9000)
- ⏳ Waiting for Web3Signer binary download and transfer
References
- Web3Signer Binary Installation
- Web3Signer Docker Documentation
- Current Deployment:
DEPLOYMENT.md - Download Solution:
DOWNLOAD_SOLUTION.md
If Docker is Still Desired
If you still want to use Docker despite the recommendations above, the process would be:
-
Install Docker in LXC container 107:
pct exec 107 -- bash -c 'apt-get update && apt-get install -y docker.io' -
Run Web3Signer Docker container:
pct exec 107 -- docker run -d \ --name web3signer \ -p 192.168.11.111:9000:9000 \ -v /opt/web3signer/data:/data \ consensys/web3signer:25.12.0 \ --http-listen-port=9000 \ --http-listen-host=0.0.0.0 \ --data-path=/data
However, this adds unnecessary complexity for our use case.