私はドッカーにとってはかなり新しいです。私はphp:7-fpmイメージを使ってドッカーファイルを設定しました。私のサイトを動かすためにこのイメージを使用するのと同様に、私は定期的なタスクを実行できるようにcronを追加したいと思います。PHPで動作するようにcronを取得する:7-fpmイメージ
私はcronを作成し、正しいフォルダに入れて、docker exec -ti myimage_php_1 /bin/bash
を実行してからcron
を実行するか、またはtail
のログファイルがすべて正常に動作します。しかし、コンテナが作成されたときにこれを動作させることはできません。私は明らかにcronを手動で起動する必要はありません。
私が理解から、私は起動時にcron
コマンドを実行するCMD
またはENTRYPOINT
を使用する必要があるが、私はこれを行うたびに、それは、元のPHPの必要CMD/ENTRYPOINT
機能オーバーライドにより私に取り組んで、私のサイトを停止します7- fpm画像。 cronコマンドの両方をトリガーし、以前のようにphpで続ける方法はありますか?:7-fpm CMD/ENTRYPOINT
?
おかげで、。しかし、私はentrypoint.shファイルを使って実行するともうUSER 'nginx'でユーザを変更することができず、 'su-nginx'は何もしないように見えるという点で2番目の問題があります。私はcronが走っている必要がありますが、ユーザーは 'nginx'です。 Dockerfileで 'USER nginx'を実行すると、私はentrypoint.shでcronを起動する権限がありません。これを回避する方法はありますか? – john
crontabの情報を/ etc/crontabに入れ、コマンドの前にユーザー名を追加して編集します:https://serverfault.com/a/352837/171205 – Robert
私があなたを誤解していない限り、問題はcronが実行されていないということです私はそれを開始する必要があります...しかし、entrypoint.shを実行する時点で、私のユーザーはrootではありません(私のアプリケーションのために 'USER nginx'にする必要があるので)、私は' cron:can ' tを開くか作成する/var/run/crond.pid:許可が拒否されました。それは私を狂ってしまう! – john