首页 > 解决方案 > ubntu 18.10 上的 docker-compose 输入设备不是 TTY 错误

问题描述

我在 ubuntu 18.10 服务器中安装了 docker 和 docker compose,当我从终端执行命令 docker compose 时它正在工作,但是当我配置 crontab 以使用 docker compose 执行命令时,我收到此错误:“未设置 USER 变量. 默认为空字符串。输入设备不是 TTY"

USER 错误与 docker-compose.yml 的错误有关,仅用于使用 ${USER}。

我该如何解决这个问题?

PS:它在 ubuntu 18.04 服务器上工作正常。

标签: dockerdocker-compose

解决方案


cron 守护程序的设计方式是它不会在您的正常 shell 环境中执行命令。这意味着您不能像在 SSH shell 命令行中那样在 cron 中使用裸命令。这是因为 PATH 环境变量为 /usr/bin:/bin,而 SHELL 环境变量设置为 /bin/sh。

你可以参考的东西:herehere

所以你可能必须直接在 crontab 中指定 shell 环境变量,比如

USER=xxx
* * * * * /bin/echo ${USER}

推荐阅读