Nucleus - docker

In the documentation of nucleus it says that one should contact ones “NVIDIA’s point person” in order to get access to the docker version.

Although I am in the early-access program I don’t have a “point person”. Hence, I ask here if there is the possibility to get access to it.

Hi.

As alternative, you can run the nucleus server in your own container following the next steps (this is how I am running the nucleus because I don’t have superuser access in the server, and it works very well). I hope they are useful to you :)


Create a Nucleus docker image if the Nucleus Deployment could not be done

Download and run an Ubuntu 18.04 container

docker pull ubuntu:18.04
docker run --name omniverse-nucleus-template-base --interactive --entrypoint /bin/bash --detach ubuntu:18.04

Copy the Nucleus Linux Installer into the container

Upload the Linux installer to the remote workstation and copy it into the container

docker cp omniverse-nucleus-2019.3A.2282-1-linux-installer.run omniverse-nucleus-template-base:/home

Execute the container and install Nucleus

docker exec -it omniverse-nucleus-template-base bash
Install dependencies
apt update
apt install libpython2.7
apt install tmux
apt install sudo
Install Nucleus
cd /home
sudo chmod +x omniverse-nucleus-2019.3A.2282-1-linux-installer.run
sudo ./omniverse-nucleus-2019.3A.2282-1-linux-installer.run
rm omniverse-nucleus-2019.3A.2282-1-linux-installer.run

Commit the modified container to a docker image

Detach from the docker container using the key sequence Ctrl + P Ctrl + Q and commit the changes

docker commit omniverse-nucleus-template-base omniverse-nucleus-template

To see the committed image (omniverse-nucleus-template) use the command docker images.
Also, the running container could be removed (omniverse-nucleus-template-base)

docker stop omniverse-nucleus-template-base
docker rm omniverse-nucleus-template-base

Run the container and start services (server & web)

docker run -it --name omniverse-nucleus-sample --entrypoint /bin/bash -p 2000-2001:2000-2001 -p 3020:3020 -p 3030:3030 -p 3100:3100 -p 3120:3120 -p 3180:3180 -p 3333:3333 -p 3400:3400 -p 9500:9500 -p 3007-3009:3007-3009 -p 8080:8080 omniverse-nucleus-template
Start service: server
tmux new -s server
cd /var/lib/omniverse/server
/opt/nvidia/omniverse/server/omni.server.app -input false

Detach current tmux session using Ctrl + b d. Note: if there is a nested tmux session use Ctrl + b Ctrl + b d

Start service: web
tmux new -s web
cd /var/lib/omniverse/web
/opt/nvidia/omniverse/web/OmniverseWeb

Detach current tmux session using Ctrl + b d. Note: if there is a nested tmux session use Ctrl + b Ctrl + b d

@toni.sm Thanks a lot! I wouldn’t have thought the installation script would run inside docker without problems!

For anyone else trying this, I have following suggestions to simplify the process:
For the first step do following:
docker run --name omniverse-nucleus-template-base -it -v Path/To/omniverse-nucleus-2019.3A.2282-1-linux-installer.run:/home/ ubuntu:18.04

(run automatically pulls images, which aren’t loaded already; no need to set entrypoint, as the image defaults to bash; use -it and no --detach in order to directly access the terminal inside docker; add the install script as a Volume)

If you do so, you can skip “Copy the [Nucleus Linux Installer] into the container” and the first step of "Execute the container and install Nucleus"
Further, you don’t have to install tmux. In the last step just open another shell, as @toni.sm already did with
docker exec -it omniverse-nucleus-template-base bash

I would have created a Dockerfile, but the install-script needs interaction. Even after adding the --accept flag, which get’s ignored. Maybe the @NVidia-devs can help with this?

(It probably got fixed in newer Versions, but Early-Access only has access to 2019.3A)