2016-06-24 3 views
0

도커 내에서 at 명령을 실행하려고합니다. 이 명령은 docker run 명령을 사용하여 컨테이너를 시작할 때 실행되는 진입 점 스크립트 인 스크립트에 있습니다. 대부분의 경우 at 명령이 성공적으로 실행되지만 5 번 중 1 번처럼 명령이 실행되지 않습니다. 어떤 종류의 버그입니까? 아니면 뭔가 빠졌습니까? 뭔가 제안 해주세요.at docker container 안의 명령

답변

3

at 명령은 cron을 시작하기위한 작업을 대기열에 넣습니다. Cron은 OS와 함께 제공되는 OS 서비스입니다. 컨테이너는 OS 서비스 (안티 패턴)를 시작하지 않는 프로세스 격리 도구입니다. 이것이 의미하는 바는 기본적으로 컨테이너 내부에 명령을 실행하는 데 필요한 cron 데몬이 없다는 것입니다.

일정을 잡으려면 컨테이너 시작의 일부로 cron 데몬을 실행하는 anti-pattern이 필요하거나 스케쥴러가 컨테이너 외부에 있거나 자신의 마이크로 서비스 컨테이너에 포함되는 것이 바람직합니다.

+0

제가 언급 한 것을 잊어 버린 것 같아요. 동일한 컨테이너에서 실행중인 몇 가지 cron 작업이 있으며 완벽하게 실행되고 있습니다. 그래서 나는 이미 언급 했어야 할 문제가 될 것이라고 생각하지 않습니다. 문제는 평균 5 번 중 1 번에만 실패하므로 문제가 cron job startup이라면 한 번 실행해서는 안됩니다. 추신 : 늦은 답신을 드려서 죄송합니다. – tom

+0

기본적으로 crond가 없으므로 cron 작업이 어떻게 실행되고 있는지 먼저 이해해야합니다. 이미지/컨테이너에 대한 자세한 내용이 필요합니다. – BMitch

+0

죄송 합니다만 컨테이너에 대해 더 이상 공유 할 수있는 권한이 없습니다. 내가 말할 수있는 것은 내가 cron 작업을 수행하기 위해 특별한 일을하지 않는다는 것입니다. 나는 그것이 내가 자동으로 달리는 그 crond를 시작하지 않고있는 것을 의미한다. 나는 crontab에 entrypoint 스크립트를 통해 작업을 추가하기 만하면된다. – tom