AWS EC2 にcronを設定し定期的にDockerコンテナを実行する
東京株式市場は15時大引けなので毎日18時に実行するよう設定する。
EC2にDockerをインストール
# パッケージ更新 sudo yum update -y # dockerインストール sudo yum install -y docker # dockerサービス起動 sudo service docker start # ec2-user を dockerグループに追加しsudoなしで実行できるように sudo usermod -a -G docker ec2-user
Dockerイメージをプル
イメージをプルして、コンテナ実行ファイルを作成する。
docker pull yukitoida/stock_scraping_batch
以下実行ファイル/home/ec2-user/docker/run-batch.sh
。
#!/bin/sh/ docker run --rm --net="host" yukitoida/stock_scraping_batch prod
cron を設定する
crontab -e
コマンドを実行する。
MAILTO="" DIR="/home/ec2-user/docker" 00 18 * * 1-5 /bin/bash $DIR/run-batch.sh > $DIR/logs/`date +\%Y\%m\%d_\%H\%M\%S`.log
MAILTO=""
にすることで実行後メールを無効化する。
その代わりに、ファイル名を日付にしログを残す。
crontab -l
で登録内容を確認する。