VMDocker Container is a Docker-based runtime environment designed to execute computational tasks for HyMatrix, working seamlessly with Vmdocker for distributed computing scenarios.
More about HyMatrix & Vmdocker:
- Multi-Runtime Support: Supports multiple execution environments
- Docker Integration: Containerized deployment for consistency and scalability
- RESTful API: Clean and intuitive API endpoints
- Production Ready: Built with Go for high performance and reliability
| Runtime | Description |
|---|---|
| AOS | AOS v2.0.1 env |
| Ollama | Large Language Model serving runtime |
- Docker installed and running
- Go 1.19+ (for local development)
# Build GoLua runtime image
./docker_build.sh golua <VERSION>
# Build Ollama runtime image
./docker_build.sh ollama <VERSION>Parameters:
golua|ollama: Runtime type to build<VERSION>: Image version tag (e.g., v1.0.0, latest, dev)
Examples:
# Build with specific version
./docker_build.sh golua v1.0.0
./docker_build.sh ollama v2.1.0
# Build with latest tag
./docker_build.sh golua latest./docker_run.shThe container will start and expose the API on the configured port.
# Run directly with Go
go run -tags=lua53 main.go
# Or build and run binary
go build -tags=lua53 -o vmdocker-container
./vmdocker-container# Run all tests
go test -tags=lua53 -v ./...
# Run tests with coverage
go test -tags=lua53 -v -cover ./....
├── ao/ # AO runtime files
├── common/ # Shared utilities
├── runtime/ # Runtime implementations
│ ├── runtime_ollama/ # Ollama runtime
│ └── runtime_vmgolua/# GoLua runtime
├── server/ # HTTP server implementation
├── utils/ # Helper utilities
├── Dockerfile.* # Docker build files
├── docker_build.sh # Build script
├── docker_run.sh # Run script
└── main.go # Application entry point
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.