48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Example use:
|
|
# ./buildFromScratch.sh --cuda --master --workspace /home/username/datapath/
|
|
|
|
WORKSPACE=$(pwd)
|
|
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
key="$1"
|
|
case $key in
|
|
--cuda)
|
|
CUDA_BUILD_ARGS="--build-arg CUDA=1 --build-arg BASE_IMAGE=nvidia/cuda:11.8.0-devel-ubuntu22.04"
|
|
|
|
CUDA_RUNTIME_ARGS="--gpus all -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics"
|
|
|
|
CUDA_CONTAINER_SUFFIX="-cuda"
|
|
shift
|
|
;;
|
|
--master)
|
|
MASTER_ARGS="--build-arg MASTER=1"
|
|
shift
|
|
;;
|
|
--workspace)
|
|
WORKSPACE=$2
|
|
shift
|
|
shift
|
|
;;
|
|
*)
|
|
echo "Unknown argument: $key"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# no need to do `xhost +` anymore
|
|
XSOCK=/tmp/.X11-unix
|
|
XAUTH=/tmp/.docker.xauth
|
|
touch $XAUTH
|
|
xauth nlist "$DISPLAY" | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
|
|
DISPLAY_ARGS="--volume=$XSOCK:$XSOCK:rw --volume=$XAUTH:$XAUTH:rw --env=XAUTHORITY=$XAUTH --env=DISPLAY=unix$DISPLAY"
|
|
|
|
echo Running with workspace: "$WORKSPACE"
|
|
|
|
docker build -t="openmvs-ubuntu$CUDA_CONTAINER_SUFFIX" --build-arg "USER_ID=$(id -u)" --build-arg "GROUP_ID=$(id -g)" $CUDA_BUILD_ARGS $MASTER_ARGS .
|
|
docker run $CUDA_RUNTIME_ARGS --entrypoint bash --ipc=host --shm-size=4gb -w /work -v "$WORKSPACE:/work" $DISPLAY_ARGS -it openmvs-ubuntu$CUDA_CONTAINER_SUFFIX
|
|
|