보뇨 다이어리

도커 컨테이너에서 cron 돌리는 방법 본문

컴퓨터 관련/서버 정보

도커 컨테이너에서 cron 돌리는 방법

보뇨 2018. 11. 21. 12:41
반응형

몇몇 자료들이 많긴한데 완전 초보인 저처럼 헤메는 사람이 있을까봐 적습니다 :)


맨처음 참고는 아래 두곳에서 했습니다


https://www.popit.kr/%EB%8F%84%EC%BB%A4-%EC%B4%88%EB%B3%B4%EC%9D%98-%EC%9A%B0%EB%B6%84%ED%88%AC-cron-%EC%82%BD%EC%A7%88%EA%B8%B0/

https://www.ekito.fr/people/run-a-cron-job-with-docker/


한국인이 작성한 블로그대로 작성하니 안되는 문제가 발생 

여러가지 문제점이 있었는데 나열하자면 이렇다


1. 커스텀한 crontab 파일 위치


  이게 문제가 뭐냐면 글을 잘 읽지 못한 저도 잘못이 있지만 Dockerfile 을 빌드할때는 Dockerfile 이 있는 해당디렉토리를 기준으로 이미지를 작성하게된다. 그렇기때문에 이미지내부에 넣을 파일들은 왠만하면 Dockerfile 이 있는 디렉토리에 넣는편이 좋다 


2. 해당 이미지 컨테이너 실행 에러

이건 번외같은건데 Dockerfile 내부에 스케줄링을 돌리는데 cron을 설치하는 문구가 없을때는 위와 같은 아래가 발생한다

딱봐도 크론이 컨테이너 내부에 설치되지않았기 때문에 RUN apt-get install -y cron 하면 끝난다


3. Unable to locate package cron 에러

RUN apt-get install -y cron 을 했는데 왜 이런에러가 뜰까? 찾아보니 당연히 os 를 처음 설치했을경우 해줘야할 update 를 명시적으로 표시안해주었기 때문에 이런 에러를 뱉는것이였다

그러니 Dockerfile 내부에는 RUN apt-get update 를 해주면 끝난다


참고링크

https://stackoverflow.com/questions/27273412/cannot-install-packages-inside-docker-ubuntu-image


반응형