diff --git a/justfile b/justfile index 6a0621e..f84ec2e 100644 --- a/justfile +++ b/justfile @@ -31,9 +31,25 @@ peer-cli-build: peer-cli-image: docker build -f crates/lanspread-peer-cli/Dockerfile -t lanspread-peer-cli:dev . -peer-cli-run NAME: +# macvlan: each peer container gets its own MAC/IP on the real LAN. +# Override on the command line if your LAN differs, e.g. +# just LANSPREAD_PARENT_IFACE=enp4s0 LANSPREAD_SUBNET=10.0.0.0/24 LANSPREAD_GATEWAY=10.0.0.1 peer-cli-net +LANSPREAD_NET := "lanspread" +LANSPREAD_PARENT_IFACE := "eth0" +LANSPREAD_SUBNET := "192.168.1.0/24" +LANSPREAD_GATEWAY := "192.168.1.1" + +peer-cli-net: + docker network inspect {{LANSPREAD_NET}} >/dev/null 2>&1 || \ + docker network create -d macvlan \ + --subnet={{LANSPREAD_SUBNET}} \ + --gateway={{LANSPREAD_GATEWAY}} \ + -o parent={{LANSPREAD_PARENT_IFACE}} \ + {{LANSPREAD_NET}} + +peer-cli-run NAME: peer-cli-net mkdir -p "target/peer-cli/{{NAME}}/state" "target/peer-cli/{{NAME}}/games" - docker run --rm --init --network host --name "lanspread-peer-cli-{{NAME}}" -i \ + docker run --rm --init --network {{LANSPREAD_NET}} --name "lanspread-peer-cli-{{NAME}}" -i \ -v "$PWD/target/peer-cli/{{NAME}}/state:/state" \ -v "$PWD/target/peer-cli/{{NAME}}/games:/games" \ lanspread-peer-cli:dev \