Alessandro Argentieri
Alessandro Argentieri

Reputation: 3215

docker logs within a bash script doesn't work

I'm experimenting a weird behaviour of Docker in a bash script. Let's see these two examples:

logs-are-showed() {
     docker rm -f mybash &>/dev/null
     docker run -it --rm -d --name mybash bash -c "echo hello; tail -f /dev/null"
     docker logs mybash
}

# usage:
# $ localtunnel 8080
localtunnel() {
     docker rm -f localtunnel &>/dev/null
     docker run -it -d --network host --name localtunnel efrecon/localtunnel --port $1
     docker logs localtunnel
}

In the first function logs-are-showed the command docker logs returns me the logs of the container mybash

In the second function localtunnel the command docker logs doesn't return me anything. After having called the localtunnel function, if I ask for the container logs from outside the script, it shows me the logs correctly.

Why does this happen?

Upvotes: 3

Views: 954

Answers (1)

KamilCuk
KamilCuk

Reputation: 141613

Processes take time to react. They may be no logs right after starting a process - it has not written anything yet. Wait a bit.

Upvotes: 3

Related Questions