Q:

CRON bash execution result differs from manual launch

I use GOGS as a personal Git server (using Docker image). I made a backup script which runs fine when I launch it manually, but when CRON lauches it, seems to malfunction as backups are strictly identical to previous one.
IMPORTANT PRECISION : usual problems like this are related to $PATH that might be incomplete, but script below only uses docker, ls, head or xargs commands which are under /usr/bin or /usr (so in $PATH).
Example results  on 3 weeks (CRON once a week) :
root@1:~# ll /path/to/backup/
total 1724864
-rw-r--r-- 1 root      root    588742750 janv. 29 11:30 gogs_2018_01_29.zip
-rw-r--r-- 1 root      root    588742750 janv. 29 11:30 gogs_2018_02_02.zip
-rw-r--r-- 1 root      root    588742750 janv. 29 11:30 gogs_2018_02_09.zip

Even system dates are identical... While date setup by bash are good related on execution. I don't get it.
After manual launch :
-rw-r--r-- 1 root      root    588742750 janv. 29 11:30 gogs_2018_01_29.zip
-rw-r--r-- 1 root      root    588742750 janv. 29 11:30 gogs_2018_02_02.zip
-rw-r--r-- 1 root      root    589503781 févr.  9 11:21 gogs_2018_02_09.zip

Last backup is bigger, dates matches... Worked.
Why do I have this malfunction on CRON launch only?
Script gogs_backup:
#!/bin/bash

# Make backup
docker exec -i -t gogs_1 /app/gogs/gogs backup --target /tmp --archive-name gogs.zip

# Build file name
now=$(date +"%Y_%m_%d")
file="/path/to/backup/gogs_$now.zip"

# Copy file
docker cp gogs_1:/tmp/gogs.zip $file

# Remove everything from /tmp dir
docker exec -i -t gogs_1 rm -rf /tmp/gogs*

# Keep only 3 in destination folder
ls -drt /path/to/backup/* | head -n-3 | xargs rm

CRON line :
0       3       *       *       5       bash /path/to/gogs_backup

A:

Thanks to @mncl post, I decided to have a look again on docker commands documentation. 
I spotted here that I runned docker exec -i -t gogs_1 /app/gogs/gogs backup --target /tmp --archive-name gogs.zip.
-i seemed useless to me, as it is a CRON launch. I removed it and the CRON launched script runned well.
Nonetheless, the Docker doc about -i puzzle me out. Why keeping STDIN attached to command would be a problem in this case?

