장고 크론탭을 원격 서버 EC2의 도커 내에서 실행

llunaB·2022년 4월 5일
0

결론 1. cron 을 도커에 설치하고 실행까지 해야한다.

django_crontab not working on production docker

결론 2. 미리 로그파일을 절대경로에 만들어두어야 한다.

[Docker] Crontab 설치

결론 3.

이미지 빌드 및 런

docker build -t django:1.0 .

docker run -e TZ=Asia/Seoul --name django -it -d django:1.0

Dockerfile

  • 핵심은 cron 을 도커에 설치하고 실행하는 것이다.
    • RUN apt-get -y install cron
    • RUN service cron start
FROM python:3
ENV PYTHONUNBUFFERED 1

RUN apt-get update
RUN apt-get -y install cron
RUN apt-get -y install vim

RUN touch /var/log/cron.log

# 컨테이너 작업경로(requirements.txt, manage.py 위치)
WORKDIR /app
RUN rm -rf /etc/localtime
RUN ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

COPY . .

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

RUN service cron start
RUN service cron status
RUN python manage.py crontab add

EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
  1. requirements.txt
django-crontab==0.7.1

로컬구조

Screen Shot 2022-04-05 at 10.17.22 PM.jpg

원격구조

Screen Shot 2022-04-05 at 10.18.44 PM.jpg

로그파일 위치(절대경로)

  • 도커파일로 생성
RUN touch /var/log/cron.log
profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글

관련 채용 정보