Detect nvidia in docker compose

Hi Everyone, I have a compose file and one of the containers uses “runtime: nvidia”. This works fine on systems nvidia drivers are installed but the container needs to run on other systems in which it is not. Right now on a system w/o nvidia I get the error “Unknown runtime specified nvidia”.

Is there a way in the compose file to detect this case and either include “runtime: nvidia” or not as the case may be?


I don’t know about such a feature in Docker Compose. The runtime is something that you should chk before you run the containers. I would create a shell script which checks the available runtimes and save the chosen runtime into an environment variable which I could use in the Docker Compose file.


    runtime: $RUNTIME

function runtime_check() {
   if nvidia runtime exists
     echo nvidia
     echo runc


export RUNTIME

exec docker compose "$@"

Then you can run:

chmod +x
./ up -d