Skip to content

MIDORIBIN/dockercron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ここ最近、すべてのアプリケーションをDockerに閉じ込めることに嵌まっています。

cron程度であれば、ホストのLinuxでやってもいいが、せっかくなのでDockerでやってみた。

実行環境

Windows 10
WSL
Docker version 17.03.2-ce

完成品

とりあえず完成品

FROM alpine
COPY myscript.sh /bin/myscript.sh
COPY root /var/spool/cron/crontabs/root
RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
    apk del tzdata && \
    rm -rf /var/cache/apk/*
RUN chmod +x /bin/myscript.sh
CMD crond -l 2 -f
#!/bin/sh
echo "Hello Qiita"
* * * * * /bin/myscript.sh

Dockerfile

ベースはalpine
実行したいシェルスクリプトとcronの設定ファイルをコピー
タイムゾーンを日本に変更
実行したいファイルに実行権限を付与
crondを実行

実行

docker run --rm -d cron

実行しているかを確認するためにログを確認
docker logs container_name

まとめ

定時処理をdockerで実行できるようになった。
冒頭で書いた通り、ホストのほうのcronでやってもあまり変わらない気がする。
ただ、プロジェクトに依存するような定時処理の場合、dockerを用いたほうが管理しやすい気がする。

あとがき

最初はWindows for Dockerでやっていたが、全く動かず3時間以上無駄にしてしまった。
権限の問題なのか、全く同じコードでもWindows for Dockerでは動かなかった。
Windowsでやる場合は十分ご注意を。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published