What is “tty: true” in docker-compose.yml?
Many docker-compose.yml writing articles mention “tty: true” without explanation.
So I had a question Why need to write “tty: true” in your docker-compose.yml?
In this article, I’d like to explain what is tty: true.
What is tty: true?
If you write “tty: true” in the docker-compose.yml, you will be able to “keep the container running”.
This is the same as writing -t in the docker command.
In foreground mode (the default when -d is not specified), docker run can start the process in the container and attach the console to the process’s standard input, output, and standard error. It can even pretend to be a TTY (this is what most command line executables expect) and pass along signals. All of that is configurable:Ref: https://docs.docker.com/engine/reference/run/#foreground
What is tty?
A pseudo terminal (also known as a tty or a pts ) connects a user’s “terminal” with the stdin and stdout stream, commonly (but not necessarily) through a shell such as bash . … In the case of docker, you’ll often use -t and -i together when you run processes in interactive mode, such as when starting a bash shell.
tty is unix command so can execute your terminal. The command used to display the device file name of the connected terminal.
$ tty
/dev/ttys001
Thank you for reading.