Skip to content

Conversation

@kabirkbr
Copy link

Summary

This PR adds Docker containerization support for MORK and updates dependencies to align with recent PathMap repository changes.

Changes

Docker Support

  • Added Docker build infrastructure (docker/ directory)
    • Dockerfile: Multi-architecture support (linux/amd64, linux/arm64) with Ubuntu base
    • build.sh: Comprehensive build script with platform selection, caching, and registry push options
    • README.md: Documentation for Docker builds and usage
    • .dockerignore: Optimized build context exclusions

Key features:

  • Rust nightly installation
  • Automated PathMap dependency cloning during build
  • Release builds with cargo build --release
  • Configurable build options (platform, caching, push/load)

Multi-arch build limitation: Cross-platform builds using QEMU emulation do not work due to Rust nightly incompatibility with QEMU (segmentation faults). However, both supported architectures (amd64 and arm64) can be built successfully on their respective native machines.

Available pre-built images on Docker Hub:

  • kabirkbr/mork:amd64 - Built on AMD64/Intel machine
  • kabirkbr/mork:arm64 - Built on ARM64/Apple Silicon machine

Dependency Updates

  • PathMap integration: Updated references from BytesTrieMap to PathMap to match upstream repository renaming
  • Freeze crate: Re-added freeze dependency to workspace Cargo.toml (required dependency)
  • Updated frontend/src/main.rs to use new PathMap naming conventions

Build Configuration

  • Added freeze crate to expr/Cargo.toml
  • Fixed build script path resolution for new docker/ directory structure

Files Changed

.dockerignore         +37
Cargo.toml            ±2
docker/Dockerfile     +67
docker/README.md      +216
docker/build.sh       +221
expr/Cargo.toml       +1
frontend/src/main.rs  ±8

Total: 7 files changed, 547 insertions(+), 5 deletions(-)

Usage

Build locally for your platform:

./docker/build.sh arm64 --load  # Apple Silicon
./docker/build.sh amd64 --load  # AMD64/Intel

Use pre-built images from Docker Hub:

docker pull kabirkbr/mork:arm64  # Apple Silicon
docker pull kabirkbr/mork:amd64  # AMD64/Intel

@kabirkbr
Copy link
Author

kabirkbr commented Oct 17, 2025

Hey @Adam-Vandervorst , i wanted to build docker images for mork inspired by your workshop yesterday; given that i did that on my tree, just went and issued a PR to your repo; welcome to consider or dismiss, as preferred;

-- thanks;

@arist76
Copy link

arist76 commented Oct 22, 2025

Hello @kabirkbr, is it possible to add support for the server branch and the MORK http server?

@Adam-Vandervorst
Copy link
Collaborator

@imlvts @TimVerhaegen any changes you'd like to see here before merging?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants