2017-03-03 8 views
0

複数のWebサイトを展開するために使用するalpine/nginx/php-fpmのベースイメージを作成しました。docker runコマンドでcronタスクをインストール

各サイトには独自のcronジョブがあります。

コンテナが初期化されたときにdocker runコマンドで起動するカスタムcronジョブを作成するにはどうすればよいですか?

+0

もちろん、そこにはある種のプロセスマネージャがあります... cronを追加してください。 – user2105103

答えて

3

コンテナごとに1つのサービスを実行するというマイクロサービスアーキテクチャとドッカーの考え方を考えれば、各コンテナにcronをインストールする代わりに、dockerhostのcronを使用してコンテナのタスクをスケジュールします。

ことを行うためには、使用を開始し、その後正しくコンテナに名前を付ける:

docker exec <container name> /path/to/shell /path/to/script 

テスト上記のコマンドを、そして作品は予想通り、dockerhostにcronを使用して、それをスケジュールする場合場合。

+0

PHPスクリプトを実行するには、PHPバイナリのパスも必要ないでしょうか? この作品のようなものはありますか? 'docker exec bash/usr/bin/php /var/www/test.php >> /var/log/cron.log 2>&1' –

+1

それは正しいです。もしあなたがロギングを必要としなければbashを省略することもできます。 –

+0

それをテストしました。それは動作しますが、私はbashを削除する必要がありました。 –

関連する問題