Home > Enterprise >  docker logs within a bash script doesn't work
docker logs within a bash script doesn't work

Time:12-16

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?

CodePudding user response:

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

  • Related