読者です 読者をやめる 読者になる 読者になる

ログってなんぼ

日々のメモです

Elastic Beanstalkで起動する環境にcronを仕込むメモ

一例として「Railsプロジェクト内のbin/hoge.rbを5分おきに動作させる」というcronjobを仕込んでみます

config/eb_crontabs

たとえば、config/eb_crontabsという名前でcronを用意しておくとして

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=ec2-user
HOME=/

*/5 * * * * ec2-user cd /var/app/current/ && /bin/bash -lc 'rails runner -e production bin/somejob.rb'

.ebextensions/09-crond.config

files:
    "/opt/elasticbeanstalk/hooks/appdeploy/enact/99-crontab.sh" :
        mode: "000755"
        owner: USERNAME
        group: USERGROUP
        content: |
            #!/usr/bin/env bash

            cp -f /var/app/current/config/eb_crontabs /etc/cron.d/eb_crontabs
            chmod 644 /etc/cron.d/eb_crontabs

もっとスマートな方法あるかな?