Docker Cron
크론작업을 도커로 이미지 올리고 해보자.
- 주의할점
- cron은 포그라운드 모드로 돌려야한다.
- cron이 추가 설치해줘야한다.
- 환경변수를 잘 해야한다.
내가 실제로 크론으로 실행하고 싶은 파일이 python이므로 python 2.7 이미지로 시작한다.
my-cron
* * * * * root echo "Hello world" >> /var/log/cron.log
Dockerfile
FROM python:2.7-stretch
MAINTAINER name "teamsmiley" <teamsmiley@gmail.com>
RUN apt-get update
RUN apt-get install cron -y
RUN mkdir -p /data/LogImporter
COPY LogImporter /data/LogImporter
ADD my-cron /etc/cron.d/my-cron
RUN chmod 0644 /etc/cron.d/my-cron
CMD [ "cron","-f" ]
docker run -d XXXXXX
docker ps
docker exec -it XXXXXXX bash
tail -f /var/log/cron.log
hello가 계속 찍히면 된다.
또는 도커 로그를 통해서 보자.
my-cron
* * * * * root echo "Hello world" > /proc/1/fd/1 2>/proc/1/fd/2
docker ps docker logs -f docker-image-name
home이 계속 찍히면 동작 완료
이제 내가 원하는 python이 실행되게 해야한다.
my-cron
* * * * * /usr/local/bin/python -O /data/LogImporter/LogImportDropOldTables.py > /proc/1/fd/1 2>/proc/1/fd/2
동작 잘 한다.