LinuxのcronでDockerコンテナを起動して実行させていたのですが、うまく実行されていないようで気になっていました。
ということで、エラーを確認したのですが、cronのログには何も出ないのですよね。メールの方にエラーは出力されています。
使い慣れない mail コマンドでメールを確認したら、「the input device is not a TTY」のエラーが出ていました。
調べると、「-it」オプションをつけていたのがいけなかったようです。「-i」にすることで解決しました。
こんな感じ。
10 * * * * cd ${HOME}/app; /usr/bin/docker run -v $(pwd):/home/dev/app -i --rm custom:v0.1 /bin/bash -c 'python app/app.py'
ツイッターのつぶやきを、自分の別ブログへ記録しているのですが、Javaで作っていたものをPythonへ移行して、ついでにdockerで実行するようにしました。手元のKVMで動かしているCentOS7へpython3環境を用意するより簡単そうだったので、dockerを使っています。KVM上のLinuxでもdockerは動くということで、便利です。
以前、仮想マシンを導入しはじめた頃は、KVMとVirtualBoxは共存できなかったので、マシンを別にして、両方使えるように環境を用意しています。dockerでコンテナを用意するようにしていけば、どちらでも動かせるので良さそう。KVMを動かしているホストマシン上でdockerを動かせるのか? VirtualBoxを動かしているホストマシン上でdockerを動かせるのか? といったところは気になっていますが、まだ確認していません。
macOSとかでdockerとVirtualBoxが同時に両方動かせないといった話は聞かないので、たぶん大丈夫なのだと思います。ただ、ホストマシンはできるだけシンプルな構成にしておきたいので、「dockerは仮想ゲストマシンで動くなら、それでいいや」と考えています。
仮想マシンは数が増えてきていて10台以上になってきていて、メンテナンスもそこそこ大変です。そういえば、年末年始にアップデートとかを考える必要がありますね…