관리자가 cron 및 nginx를 실행하는 데 사용합니다. 문제는 COPY
또는 VOLUME
에 내 cron 파일을 마운트하려고 시도 할 때 내 cron 파일을 실행하지 않습니다. /etc/cron.dDocker가 외부 출처 (호스트 - 창)로 cron 작업 파일을 실행하지 않습니다
그러나 컨테이너에 넣고 정확히 동일한 cron 파일을 만들면 즉시 인식되어 실행됩니다.
Dockerfile :
FROM phusion/baseimage:latest
ENV TERM xterm
ENV HOME /root
RUN apt-get update && apt-get install -y \
nginx \
supervisor \
curl \
nano \
net-tools
RUN rm -rf /etc/nginx/*
COPY nginx_conf /etc/nginx
COPY supervisor_conf /etc/supervisor/
RUN mkdir -p /var/log/supervisor
COPY crontabs /etc/cron.d/
RUN chmod -R 644 /etc/cron.d/
CMD /usr/bin/supervisord
크론 자체
* * * * * root curl --silent http://127.0.0.1/cronjob/cron_test_docker.php >> /var/www/html/log/docker_test.log 2>&1
크론과의 nginx가 stdout
및 stderr
가 비어는 cron에 관한 /var/log/supervisor/
내부 관리자
[supervisord]
nodaemon = true
[program:nginx]
command = /usr/sbin/nginx -g "daemon off;"
autostart = true
[program:cron]
command = /usr/sbin/cron -f
autostart = true
로그를 통해 실행합니다.
는 또한 관리자를 제거하고 phusion 및CMD cron -f
을 통해 자체 크론을 실행하는 시도했지만 소스 (
COPY
또는
VOLUME
) 외부와 마술 컨테이너 내에서 만들 때 작동 때 작동하지 않는 같은 문제를 얻었다.
처음에는 사용 권한 문제로 생각되어 chmod 644
(이 내용은 COPY
의 결과 인 모든 파일에 대해 컨테이너에 생성 된 권한이므로) 시도했습니다.
RUN chmod 644 /etc/cron.d/
rwx
과 함께 사용 가능한 모든 조합을 사용하지 않으려 고 시도했습니다.
또한 cronjob의 라인을 /etc/crontab
에 추가하려고했지만 crontab -l
에는 인식되지 않습니다. 그것은 용기 매번에서 수동으로 작성하는 번거 로움이 그대로이 COPY
또는 VOLUME
을 통해 생성 된 바로 그 때 일 경우
COPY crontab /tmp/crontab
RUN cat crontab >> /etc/crontab
정말 편리 할 것입니다.
도움이 될 것입니다.
편집 1 : COPY
또는 VOLUME
후 파일 권한에 대한
몇 가지 추가 정보를 제공합니다.내가 VOLUME
docker-compose
을 통해 폴더를 마운트 할 때 내가
/etc/cron.d/
내부
ls -l
를 실행하는 용기 내부
COPY crontabs /etc/cron.d/
RUN chmod -R 644 /etc/cron.d/
을 수행
는
-rw-r--r-- 1 root root 118 Jul 20 11:03 wwwcron-cron-docker_test
보여줍니다 내가 수동으로이처럼 보이는 컨테이너에있는 크론 파일을 만들 경우 4,533,210
ls -l
는 또한-rwxrwxrwx 1 1000 staff 118 Jul 20 11:03 wwwcron-cron-docker_test
를 보여주고이
-rw-r--r-- 1 root root 118 Jul 22 15:50 wwwcron-cron-docker_test_inside_docker
은 분명히 매우 다른 권한이 있습니다 작동 소유권을 COPY
또는 VOLUME
으로 만들 때 그러나 정확한 사용 권한을 사용하여 COPY
을 만드는 것은 작동하지 않지만 컨테이너에서 생성 된 경우 작동하는 것으로 보입니다.
볼륨으로 가져올 때 컨테이너 내부의 crontab 파일은 어떻게 보이나요? – BMitch
@BMitch : 편집 1에 추가 정보가 추가되었습니다. 요청한 내용이 콘텐츠 인 경우 - 물론 동일합니다. – Nathan
호스트 OS는 무엇입니까? Windows에서 cron 파일을 편집 했습니까? 줄 바꿈 문제가 있는지 궁금합니다. – BMitch