自动摘要
正在生成中……
今天发现,使用crontab运行docker run
时报错: the input device is not a TTY
。
运行命令是这样的:
/usr/bin/docker run -it --rm -v "/opt/docker/Sites:/data" -v "/root:/root" ubuntu-ssh-rsync /data/rsyncFromProjectD.sh
解决方法是: 移除-t 参数
另一种方式是写一个脚本,根据条件判断是否存在伪终端决定是否加上-t参数:
DOCKER_RUN_OPTIONS="-i --rm"
# Only allocate tty if we detect one
if [ -t 0 ] && [ -t 1 ]; then
DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -t"
fi
/usr/bin/docker run $DOCKER_RUN_OPTIONS -v "/opt/docker/Sites:/data" -v "/root:/root" ubuntu-ssh-rsync /data/rsyncFromProjectD.sh