パパエンジニアのポエム

奥さんと娘ちゃんへの愛が止まらない

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で登録内容を確認する。

これで平日18時に株価をスクレイピングしてMySQLに保存できるようになる。