“the input device is not a TTY” fix when running Docker in Azure DevOps

Attempting to run Docker in Azure DevOps and getting error “the input device is not a TTY”? In in this blog post, I will show you a simple fix used to resolve the issue I was having.

When attempting to use Docker inside a Bash@3 task; I kept getting the error:-

========================= Starting Command Output ===========================
/bin/bash /home/vsts/work/_temp/c357347e-c014-46e2-8193-13d47a7220d0.sh
the input device is not a TTY

##[error]Bash exited with code '1'.
Finishing: Bash

The Docker command I was running was simpler to the below:-

docker run -it -e variable1="variable1" -e varable2="variable2" --rm -v $(pwd):/share chef/inspec:latest $@;

Notice in this Docker command “-it”? What does it mean? Lets review docs.docker.com

For interactive processes (like a shell), you must use -i -t together in order to allocate a tty for the container process. -i -t is often written -it

docs.docker.com

When running docker in Azure DevOps I didn’t want to run an interactive session (had tested this locally and worked OK). Removing “-it” from my Docker command resolved the issue and allowed Docker to run successfully.

docker run -e variable1="variable1" -e varable2="variable2" --rm -v $(pwd):/share chef/inspec:latest $@;

A quick blog post to assist you in resolving the issue “the input device is not a TTY” when running Docker in Azure DevOps.

1 comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s