improve docker scripts (#23)
* Feature/support x86 64 (#22) * [Add] support for x86_64 archtecture. * make script executable * [fix] apply shellcheck suggestions (to get rid of warning during runtime) * [fix] update the image_tag to match the x86 tag * add input detection as optional, rename scripts --------- Co-authored-by: Austin Gregg-Smith <blooop@gmail.com>
This commit is contained in:
committed by
GitHub
parent
ac02893dee
commit
21d434f608
25
docker/build_dev_docker.sh
Normal file → Executable file
25
docker/build_dev_docker.sh
Normal file → Executable file
@@ -12,29 +12,42 @@
|
|||||||
|
|
||||||
|
|
||||||
# This script will create a dev docker. Run this script by calling `bash build_dev_docker.sh`
|
# This script will create a dev docker. Run this script by calling `bash build_dev_docker.sh`
|
||||||
# If you want to build a isaac sim docker, run this script with `bash build_dev_docker.sh isaac`
|
# If you want to build a isaac sim docker, run this script with `bash build_dev_docker.sh isaac_sim_2022.2.1`
|
||||||
|
|
||||||
# Check architecture to build:
|
# Check architecture to build:
|
||||||
arch=`uname -m`
|
echo "deprecated, use build_docker.sh instead"
|
||||||
|
|
||||||
image_tag="x86"
|
image_tag="x86"
|
||||||
isaac_sim_version=""
|
isaac_sim_version=""
|
||||||
|
input_arg="$1"
|
||||||
|
|
||||||
if [ $1 == "isaac_sim_2022.2.1" ]; then
|
if [ -z "$input_arg" ]; then
|
||||||
|
arch=$(uname -m)
|
||||||
|
echo "Argument empty, trying to build based on architecture"
|
||||||
|
if [ "$arch" == "x86_64" ]; then
|
||||||
|
input_arg="x86"
|
||||||
|
elif [ "$arch" == "arm64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
elif [ "$arch" == "aarch64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$input_arg" == "isaac_sim_2022.2.1" ]; then
|
||||||
echo "Building Isaac Sim docker"
|
echo "Building Isaac Sim docker"
|
||||||
dockerfile="isaac_sim.dockerfile"
|
dockerfile="isaac_sim.dockerfile"
|
||||||
image_tag="isaac_sim_2022.2.1"
|
image_tag="isaac_sim_2022.2.1"
|
||||||
isaac_sim_version="2022.2.1"
|
isaac_sim_version="2022.2.1"
|
||||||
elif [ $1 == "isaac_sim_2023.1.0" ]; then
|
elif [ "$input_arg" == "isaac_sim_2023.1.0" ]; then
|
||||||
echo "Building Isaac Sim headless docker"
|
echo "Building Isaac Sim headless docker"
|
||||||
dockerfile="isaac_sim.dockerfile"
|
dockerfile="isaac_sim.dockerfile"
|
||||||
image_tag="isaac_sim_2023.1.0"
|
image_tag="isaac_sim_2023.1.0"
|
||||||
isaac_sim_version="2023.1.0"
|
isaac_sim_version="2023.1.0"
|
||||||
elif [ ${arch} == "x86" ]; then
|
elif [ "$input_arg" == "x86" ]; then
|
||||||
echo "Building for X86 Architecture"
|
echo "Building for X86 Architecture"
|
||||||
dockerfile="x86.dockerfile"
|
dockerfile="x86.dockerfile"
|
||||||
image_tag="x86"
|
image_tag="x86"
|
||||||
elif [ ${arch} = "aarch64" ]; then
|
elif [ "$input_arg" = "aarch64" ]; then
|
||||||
echo "Building for ARM Architecture"
|
echo "Building for ARM Architecture"
|
||||||
dockerfile="aarch64.dockerfile"
|
dockerfile="aarch64.dockerfile"
|
||||||
image_tag="aarch64"
|
image_tag="aarch64"
|
||||||
|
|||||||
73
docker/build_docker.sh
Executable file
73
docker/build_docker.sh
Executable file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
##
|
||||||
|
## Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
|
##
|
||||||
|
## NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
|
||||||
|
## property and proprietary rights in and to this material, related
|
||||||
|
## documentation and any modifications thereto. Any use, reproduction,
|
||||||
|
## disclosure or distribution of this material and related documentation
|
||||||
|
## without an express license agreement from NVIDIA CORPORATION or
|
||||||
|
## its affiliates is strictly prohibited.
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
# This script will create a dev docker. Run this script by calling `bash build_dev_docker.sh`
|
||||||
|
# If you want to build a isaac sim docker, run this script with `bash build_dev_docker.sh isaac_sim_2022.2.1`
|
||||||
|
|
||||||
|
# Check architecture to build:
|
||||||
|
|
||||||
|
image_tag="x86"
|
||||||
|
isaac_sim_version=""
|
||||||
|
input_arg="$1"
|
||||||
|
|
||||||
|
if [ -z "$input_arg" ]; then
|
||||||
|
arch=$(uname -m)
|
||||||
|
echo "Argument empty, trying to build based on architecture"
|
||||||
|
if [ "$arch" == "x86_64" ]; then
|
||||||
|
input_arg="x86"
|
||||||
|
elif [ "$arch" == "arm64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
elif [ "$arch" == "aarch64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$input_arg" == "isaac_sim_2022.2.1" ]; then
|
||||||
|
echo "Building Isaac Sim docker"
|
||||||
|
dockerfile="isaac_sim.dockerfile"
|
||||||
|
image_tag="isaac_sim_2022.2.1"
|
||||||
|
isaac_sim_version="2022.2.1"
|
||||||
|
elif [ "$input_arg" == "isaac_sim_2023.1.0" ]; then
|
||||||
|
echo "Building Isaac Sim headless docker"
|
||||||
|
dockerfile="isaac_sim.dockerfile"
|
||||||
|
image_tag="isaac_sim_2023.1.0"
|
||||||
|
isaac_sim_version="2023.1.0"
|
||||||
|
elif [ "$input_arg" == "x86" ]; then
|
||||||
|
echo "Building for X86 Architecture"
|
||||||
|
dockerfile="x86.dockerfile"
|
||||||
|
image_tag="x86"
|
||||||
|
elif [ "$input_arg" = "aarch64" ]; then
|
||||||
|
echo "Building for ARM Architecture"
|
||||||
|
dockerfile="aarch64.dockerfile"
|
||||||
|
image_tag="aarch64"
|
||||||
|
else
|
||||||
|
echo "Unknown Architecture"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# build docker file:
|
||||||
|
# Make sure you enable nvidia runtime by:
|
||||||
|
# Edit/create the /etc/docker/daemon.json with content:
|
||||||
|
# {
|
||||||
|
# "runtimes": {
|
||||||
|
# "nvidia": {
|
||||||
|
# "path": "/usr/bin/nvidia-container-runtime",
|
||||||
|
# "runtimeArgs": []
|
||||||
|
# }
|
||||||
|
# },
|
||||||
|
# "default-runtime": "nvidia" # ADD this line (the above lines will already exist in your json file)
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
echo "${dockerfile}"
|
||||||
|
|
||||||
|
docker build --build-arg ISAAC_SIM_VERSION=${isaac_sim_version} -t curobo_docker:${image_tag} -f ${dockerfile} .
|
||||||
0
docker/build_user_docker.sh
Normal file → Executable file
0
docker/build_user_docker.sh
Normal file → Executable file
29
docker/start_dev_docker.sh
Normal file → Executable file
29
docker/start_dev_docker.sh
Normal file → Executable file
@@ -10,8 +10,25 @@
|
|||||||
## its affiliates is strictly prohibited.
|
## its affiliates is strictly prohibited.
|
||||||
##
|
##
|
||||||
|
|
||||||
|
echo "deprecated, use start_user_docker.sh instead"
|
||||||
|
|
||||||
if [ $1 == "x86" ]; then
|
input_arg="$1"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -z "$input_arg" ]; then
|
||||||
|
echo "Argument empty, trying to run based on architecture"
|
||||||
|
arch=$(uname -m)
|
||||||
|
if [ "$arch" == "x86_64" ]; then
|
||||||
|
input_arg="x86"
|
||||||
|
elif [ "$arch" == "arm64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
elif [ "$arch" == "aarch64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$input_arg" == "x86" ]; then
|
||||||
|
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
--privileged \
|
--privileged \
|
||||||
@@ -25,9 +42,9 @@ if [ $1 == "x86" ]; then
|
|||||||
--env DISPLAY=unix$DISPLAY \
|
--env DISPLAY=unix$DISPLAY \
|
||||||
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
--volume /dev:/dev \
|
--volume /dev:/dev \
|
||||||
curobo_docker:user_$1
|
curobo_docker:user_$input_arg
|
||||||
|
|
||||||
elif [ $1 == "aarch64" ]; then
|
elif [ "$input_arg" == "aarch64" ]; then
|
||||||
|
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
--runtime nvidia \
|
--runtime nvidia \
|
||||||
@@ -40,10 +57,10 @@ elif [ $1 == "aarch64" ]; then
|
|||||||
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
--volume /dev/input:/dev/input \
|
--volume /dev/input:/dev/input \
|
||||||
--mount type=bind,src=/home/$USER/code,target=/home/$USER/code \
|
--mount type=bind,src=/home/$USER/code,target=/home/$USER/code \
|
||||||
curobo_docker:user_$1
|
curobo_docker:user_$input_arg
|
||||||
|
|
||||||
elif [[ $1 == *isaac_sim* ]] ; then
|
elif [[ "$input_arg" == *isaac_sim* ]] ; then
|
||||||
echo "Isaac Sim Dev Docker is not supported"
|
echo "Isaac Sim User Docker is not supported"
|
||||||
else
|
else
|
||||||
echo "Unknown docker"
|
echo "Unknown docker"
|
||||||
fi
|
fi
|
||||||
|
|||||||
28
docker/start_docker.sh
Normal file → Executable file
28
docker/start_docker.sh
Normal file → Executable file
@@ -10,7 +10,21 @@
|
|||||||
## its affiliates is strictly prohibited.
|
## its affiliates is strictly prohibited.
|
||||||
##
|
##
|
||||||
|
|
||||||
if [ $1 == "x86" ]; then
|
input_arg="$1"
|
||||||
|
|
||||||
|
if [ -z "$input_arg" ]; then
|
||||||
|
echo "Argument empty, trying to run based on architecture"
|
||||||
|
arch=$(uname -m)
|
||||||
|
if [ "$arch" == "x86_64" ]; then
|
||||||
|
input_arg="x86"
|
||||||
|
elif [ "$arch" == "arm64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
elif [ "$arch" == "aarch64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$input_arg" == "x86" ]; then
|
||||||
|
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
--privileged \
|
--privileged \
|
||||||
@@ -23,9 +37,9 @@ if [ $1 == "x86" ]; then
|
|||||||
--env DISPLAY=unix$DISPLAY \
|
--env DISPLAY=unix$DISPLAY \
|
||||||
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
--volume /dev:/dev \
|
--volume /dev:/dev \
|
||||||
curobo_docker:$1
|
curobo_docker:$input_arg
|
||||||
|
|
||||||
elif [ $1 == "aarch64" ]; then
|
elif [ "$input_arg" == "aarch64" ]; then
|
||||||
|
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
--runtime nvidia \
|
--runtime nvidia \
|
||||||
@@ -37,11 +51,11 @@ elif [ $1 == "aarch64" ]; then
|
|||||||
--env DISPLAY=$DISPLAY \
|
--env DISPLAY=$DISPLAY \
|
||||||
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
--volume /dev/input:/dev/input \
|
--volume /dev/input:/dev/input \
|
||||||
curobo_docker:$1
|
curobo_docker:$input_arg
|
||||||
|
|
||||||
elif [[ $1 == *isaac_sim* ]] ; then
|
elif [[ "$input_arg" == *isaac_sim* ]] ; then
|
||||||
|
|
||||||
docker run --name container_$1 --entrypoint bash -it --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
|
docker run --name container_$input_arg --entrypoint bash -it --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
|
||||||
--privileged \
|
--privileged \
|
||||||
-e "PRIVACY_CONSENT=Y" \
|
-e "PRIVACY_CONSENT=Y" \
|
||||||
-v $HOME/.Xauthority:/root/.Xauthority \
|
-v $HOME/.Xauthority:/root/.Xauthority \
|
||||||
@@ -55,7 +69,7 @@ elif [[ $1 == *isaac_sim* ]] ; then
|
|||||||
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
|
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
|
||||||
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
|
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
|
||||||
--volume /dev:/dev \
|
--volume /dev:/dev \
|
||||||
curobo_docker:$1
|
curobo_docker:$input_arg
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "Unknown docker"
|
echo "Unknown docker"
|
||||||
|
|||||||
0
docker/start_docker_aarch64.sh
Normal file → Executable file
0
docker/start_docker_aarch64.sh
Normal file → Executable file
@@ -1,22 +0,0 @@
|
|||||||
##
|
|
||||||
## Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
||||||
##
|
|
||||||
## NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
|
|
||||||
## property and proprietary rights in and to this material, related
|
|
||||||
## documentation and any modifications thereto. Any use, reproduction,
|
|
||||||
## disclosure or distribution of this material and related documentation
|
|
||||||
## without an express license agreement from NVIDIA CORPORATION or
|
|
||||||
## its affiliates is strictly prohibited.
|
|
||||||
##
|
|
||||||
docker run --rm -it \
|
|
||||||
--runtime nvidia \
|
|
||||||
--mount type=bind,src=/home/$USER/code,target=/home/$USER/code \
|
|
||||||
--hostname ros1-docker \
|
|
||||||
--add-host ros1-docker:127.0.0.1 \
|
|
||||||
--network host \
|
|
||||||
--gpus all \
|
|
||||||
--env ROS_HOSTNAME=localhost \
|
|
||||||
--env DISPLAY=$DISPLAY \
|
|
||||||
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
|
||||||
--volume /dev/input:/dev/input \
|
|
||||||
curobo_user_docker:latest
|
|
||||||
0
docker/start_docker_isaac_sim.sh
Normal file → Executable file
0
docker/start_docker_isaac_sim.sh
Normal file → Executable file
0
docker/start_docker_isaac_sim_headless.sh
Normal file → Executable file
0
docker/start_docker_isaac_sim_headless.sh
Normal file → Executable file
0
docker/start_docker_x86.sh
Normal file → Executable file
0
docker/start_docker_x86.sh
Normal file → Executable file
@@ -1,24 +0,0 @@
|
|||||||
##
|
|
||||||
## Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
||||||
##
|
|
||||||
## NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
|
|
||||||
## property and proprietary rights in and to this material, related
|
|
||||||
## documentation and any modifications thereto. Any use, reproduction,
|
|
||||||
## disclosure or distribution of this material and related documentation
|
|
||||||
## without an express license agreement from NVIDIA CORPORATION or
|
|
||||||
## its affiliates is strictly prohibited.
|
|
||||||
##
|
|
||||||
docker run --rm -it \
|
|
||||||
--privileged --mount type=bind,src=/home/$USER/code,target=/home/$USER/code \
|
|
||||||
-e NVIDIA_DISABLE_REQUIRE=1 \
|
|
||||||
-e NVIDIA_DRIVER_CAPABILITIES=all --device /dev/dri \
|
|
||||||
--hostname ros1-docker \
|
|
||||||
--add-host ros1-docker:127.0.0.1 \
|
|
||||||
--gpus all \
|
|
||||||
--network host \
|
|
||||||
--env ROS_MASTER_URI=http://127.0.0.1:11311 \
|
|
||||||
--env ROS_IP=127.0.0.1 \
|
|
||||||
--env DISPLAY=unix$DISPLAY \
|
|
||||||
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
|
||||||
--volume /dev/input:/dev/input \
|
|
||||||
curobo_user_docker:latest
|
|
||||||
65
docker/start_user_docker.sh
Executable file
65
docker/start_user_docker.sh
Executable file
@@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
##
|
||||||
|
## Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
|
##
|
||||||
|
## NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
|
||||||
|
## property and proprietary rights in and to this material, related
|
||||||
|
## documentation and any modifications thereto. Any use, reproduction,
|
||||||
|
## disclosure or distribution of this material and related documentation
|
||||||
|
## without an express license agreement from NVIDIA CORPORATION or
|
||||||
|
## its affiliates is strictly prohibited.
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
input_arg="$1"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -z "$input_arg" ]; then
|
||||||
|
echo "Argument empty, trying to run based on architecture"
|
||||||
|
arch=$(uname -m)
|
||||||
|
if [ "$arch" == "x86_64" ]; then
|
||||||
|
input_arg="x86"
|
||||||
|
elif [ "$arch" == "arm64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
elif [ "$arch" == "aarch64" ]; then
|
||||||
|
input_arg="aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$input_arg" == "x86" ]; then
|
||||||
|
|
||||||
|
docker run --rm -it \
|
||||||
|
--privileged \
|
||||||
|
-e NVIDIA_DISABLE_REQUIRE=1 \
|
||||||
|
-e NVIDIA_DRIVER_CAPABILITIES=all --device /dev/dri \
|
||||||
|
--mount type=bind,src=/home/$USER/code,target=/home/$USER/code \
|
||||||
|
--hostname ros1-docker \
|
||||||
|
--add-host ros1-docker:127.0.0.1 \
|
||||||
|
--gpus all \
|
||||||
|
--network host \
|
||||||
|
--env DISPLAY=unix$DISPLAY \
|
||||||
|
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
--volume /dev:/dev \
|
||||||
|
curobo_docker:user_$1
|
||||||
|
|
||||||
|
elif [ "$input_arg" == "aarch64" ]; then
|
||||||
|
|
||||||
|
docker run --rm -it \
|
||||||
|
--runtime nvidia \
|
||||||
|
--hostname ros1-docker \
|
||||||
|
--add-host ros1-docker:127.0.0.1 \
|
||||||
|
--network host \
|
||||||
|
--gpus all \
|
||||||
|
--env ROS_HOSTNAME=localhost \
|
||||||
|
--env DISPLAY=$DISPLAY \
|
||||||
|
--volume /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
--volume /dev/input:/dev/input \
|
||||||
|
--mount type=bind,src=/home/$USER/code,target=/home/$USER/code \
|
||||||
|
curobo_docker:user_$1
|
||||||
|
|
||||||
|
elif [[ "$input_arg" == *isaac_sim* ]] ; then
|
||||||
|
echo "Isaac Sim User Docker is not supported"
|
||||||
|
else
|
||||||
|
echo "Unknown docker"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user