#!/bin/bash

# You can set $DUORAM_STORAGE to a directory on the host to avoid
# writing large amounts of data into the docker. It's best if this is on
# a fast storage medium (or even a ramdisk).

if [ "$DUORAM_STORAGE" != "" ]; then
    mkdir -p ${DUORAM_STORAGE}/party{0,1,2}
    S0ARG="-v ${DUORAM_STORAGE}/party0:/root/duoram/duoram-online/preprocflags"
    S1ARG="-v ${DUORAM_STORAGE}/party1:/root/duoram/duoram-online/preprocflags"
    S2ARG="-v ${DUORAM_STORAGE}/party2:/root/duoram/duoram-online/preprocflags"
fi

# The SYS_NICE capability allows you to use numactl to pin processes to
# NUMA nodes and/or individual cores

docker run -d --cap-add SYS_NICE --rm --name duoram_p0 -h duoram_p0 $S0ARG -t duoram
docker run -d --cap-add SYS_NICE --rm --name duoram_p1 -h duoram_p1 $S1ARG -t duoram
docker run -d --cap-add SYS_NICE --rm --name duoram_p2 -h duoram_p2 $S2ARG -t duoram

echo "All dockers launched"
