LumeGuideAdvancedLumier

Docker

Running Lumier with Docker

Quick start (ephemeral)

Run a macOS VM that resets when you stop it:

docker run -it --rm \
  -p 8006:8006 \
  -e VM_NAME=my-vm \
  -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
  -e CPU_CORES=4 \
  -e RAM_SIZE=8192 \
  trycua/lumier:latest

Open http://localhost:8006 in your browser.

In ephemeral mode, changes are lost when you stop the container. See below for persistent storage.

Persistent storage

Keep your VM state between sessions:

mkdir -p storage

docker run -it --rm \
  -p 8006:8006 \
  -v $(pwd)/storage:/storage \
  -e VM_NAME=my-vm \
  -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
  -e CPU_CORES=4 \
  -e RAM_SIZE=8192 \
  -e HOST_STORAGE_PATH=$(pwd)/storage \
  trycua/lumier:latest

The -v mount and HOST_STORAGE_PATH work together to save VM data on your Mac.

Share files with the VM

Add a shared folder accessible at /Volumes/My Shared Files inside the VM:

mkdir -p storage shared

docker run -it --rm \
  -p 8006:8006 \
  -v $(pwd)/storage:/storage \
  -v $(pwd)/shared:/shared \
  -e VM_NAME=my-vm \
  -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
  -e CPU_CORES=4 \
  -e RAM_SIZE=8192 \
  -e HOST_STORAGE_PATH=$(pwd)/storage \
  -e HOST_SHARED_PATH=$(pwd)/shared \
  trycua/lumier:latest

Files you put in ./shared appear in the VM, and vice versa.

Run scripts on VM startup

Create shared/lifecycle/on-logon.sh to run commands when the VM boots:

mkdir -p shared/lifecycle

cat > shared/lifecycle/on-logon.sh << 'EOF'
#!/usr/bin/env bash

# Example: create a file on the desktop
echo "Hello from Lumier!" > /Users/lume/Desktop/hello.txt

# Add your setup commands here:
# - Install packages
# - Configure environment
# - Start services
EOF

chmod +x shared/lifecycle/on-logon.sh

The script runs as the lume user and can access:

  • /Users/lume — home directory
  • /Volumes/My Shared Files — shared folder

Environment variables

VariableDescriptionExample
VM_NAMEName for the VMmy-vm
VERSIONmacOS image to useghcr.io/trycua/macos-sequoia-cua:latest
CPU_CORESCPU cores4
RAM_SIZEMemory in MB8192
HOST_STORAGE_PATHPersistent storage path$(pwd)/storage
HOST_SHARED_PATHShared folder path$(pwd)/shared

Change the port

If port 8006 is in use, map to a different port:

docker run -it --rm \
  -p 9000:8006 \
  # ... rest of options
  trycua/lumier:latest

Then access at http://localhost:9000.

Was this page helpful?