티스토리 뷰
반응형
도커 컨테이너 App을 스케쥴로 일정한 작업을 처리하고 싶을 때 두가지 방법이 있다.
Host에서 도커 Cron을 설정하는 방법과 컨테이너 안에서 Cron을 설정하는 방법이다.
이번에는 컨테이너 안에서 Cron을 설정하는 방법을 알아보았다.
사전 준비
테스트를 위해 Dockerfile로 컨테이너를 실행하였다.
Dockerfile
# python library
FROM python:3.9
# installing required packages
RUN apt-get update && apt-get install -y \
gcc \
cron \
net-tools \
curl \
iputils-ping \
vim
WORKDIR /home/cron-test
# Copy cron file to the container
COPY Cron /home/cron-test
COPY test.py /home/cron-test
COPY Cron /etc/cron.d/cronjob
# Give the permission
RUN chmod +x /etc/cron.d/cronjob
# Add the cron job
RUN crontab /etc/cron.d/cronjob
# Cron Activate
CMD ["cron", "-f"]
도커 파일을 살펴 보면 Cron이라는 파일을 컨테이너 내부의 /home/cron-test 공간에 카피하여 저장한다. 그 다음 컨테이너 내부에 /etc/cron.d/cronjob 경로 복사를 진행했다. 위의 파일을 실행하면 Cron파일 내부에 설정된 크론이 crontab에 설정된다. Cron파일의 내부는 다음과 같다.
* * * * * /usr/local/bin/python3 test.py >> /home/cron-test/test.log 2>&1
Cron 삭제/변경/등록
컨테이너에 접속 후 아래의 명령어를 입력한다.
# access container
docker exec -it [containerid] bash
# crontab check
crontab -l
스케쥴을 변경할 때는 /etc/cron.d/cronjob 파일을 수정하면 되는데 절차는 아래와 같다. crontab -r 명령어로 삭제하고 다시 등록해도 되지만 crontab -e로 바로 수정도 가능하다!
# delete crontab already registered
crontab -r
# fix the crontab
*/5 * * * * /usr/local/bin/python3 test.py >> /home/cron-test/test.log 2>&1
# apply the cron again
crontab /etc/cron.d/cronjob
수정 후 다시 crontab 명령어로 등록해주면 끝~!
반응형
'DevOps' 카테고리의 다른 글
[mlflow] LLM Deployments Server (0) | 2024.05.14 |
---|---|
[Docker] 파이썬으로 컨테이너 구성해서 주기적인 GET 요청 (0) | 2023.09.21 |
[Apache] 자식 프로세스 생성 방식 prefork, worker (0) | 2021.03.20 |
리눅스 서버 상태 체크하기-vmstat 분석 (0) | 2021.02.28 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 리눅스
- 정보보안
- lightsail
- 정보보안기사
- synflooding
- 백준
- 우선순위큐
- springboot
- Ai
- FastAPI
- 파이썬
- 분산시스템
- Python
- 보안
- 다이나믹프로그래밍
- 보안기사
- t검정
- 딥러닝
- 코딩테스트
- 카카오페이
- t-test
- 프로그래머스
- 자료구조
- 시간초과
- 그리디
- llm
- LangChain
- linux
- 카카오페이면접후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함