現在於 Linux 程式很多都包 Docker,而需要定期跑得程式,可以跑在 Docker 裡面(需要特別做),或者就是在外部 docker exec 執行
但是在 docker exec + crontab 的時候,就會遇到「the input device is not a TTY」 的錯誤,要怎麼解決呢?
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
現在於 Linux 程式很多都包 Docker,而需要定期跑得程式,可以跑在 Docker 裡面(需要特別做),或者就是在外部 docker exec 執行
但是在 docker exec + crontab 的時候,就會遇到「the input device is not a TTY」 的錯誤,要怎麼解決呢?
Docker 核心概念是 Microservice,所以應該盡量不要進去機器做 Cron 的設定,要再外部控制 Cron 的執行才是。
Crontab 主要是希望在環境裡面跑那隻程式,所以只要由外部呼叫程式執行,程式都在 Docker 的環境裡面跑,並不是外部的環境,就不會有任何影響。
所以從 Docker 教學第一行 Hello 就有示範怎麼玩了~
Python 都會使用 virtualenv 來開發,Deploy 當然也希望可以建造一個乾淨的 virtualenv 的環境來搬移。
不過 Python 的 venv 執行的參數作法如下:
各種類的 Linux 都一樣, 使用者 用 crontab -e 編輯排程後, 總會把這些資料紀錄在某個地方.
平常都不需要在意, 但是如果是搬移 NIS 且 順便有修改帳號的 id / group id 等等, 就會爆炸, 於是花點時間翻了一下~
註: 此為 Ubuntu / Debian Linux 的存放位置.