Docker : crondを動かしておくコンテナを起動する
crond用のコンテナを作るテストをしていたので共有です。
Dockerfile
Dockerfileの中身はこんな感じです。今回はとりあえずcrondを動かしっぱなしにしておくだけの習作です。
FROM centos:latest MAINTAINER okisanjp <okisan.jp@gmail.com> # crontabsをインストール RUN yum -y update RUN yum -y install crontabs # タイムゾーンをJSTへ RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # 手元のcronファイルをコンテナへ持っていく ADD cron-test /etc/cron.d/test # 実行できるように権限を付ける RUN chmod 0644 /etc/cron.d/test # 動作確認用のファイル RUN touch /tmp/test.txt # 起動 CMD crond && tail -f /dev/null
使い方
build
$ docker build -t cron-test .
run container
$ docker run -it -d cron-test
コンテナの起動を確認
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0901729117fd cron-test "/bin/sh -c 'crond &&" 2 minutes ago Up 2 minutes nostalgic_jepsen
コンテナへ入って確認
$ docker exec -it nostalgic_jepsen /bin/bash # ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 11644 2604 ? Ss+ 15:40 0:00 /bin/sh -c crond && tail -f /var/log/crond.log root 6 0.0 0.1 22756 2656 ? Ss 15:40 0:00 crond root 7 0.0 0.0 4360 704 ? S+ 15:40 0:00 tail -f /var/log/crond.log root 8 0.6 0.1 11760 2872 ? Ss 15:44 0:00 /bin/bash root 20 0.0 0.1 47432 3308 ? R+ 15:44 0:00 ps aux # tail -f /tmp/test.txt Mon Dec 12 15:54:01 JST 2016 : hello docker Mon Dec 12 15:55:01 JST 2016 : hello docker
とりあえず動いてる模様です