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

동작 잘 한다.

참고 : https://www.popit.kr/도커-초보의-우분투-cron-삽질기

teamsmiley's profile image

teamsmiley

2018-06-27 00:00

Read more posts by this author