私はsupervisorを使用してcronとnginxを実行しますが、問題は、COPY
またはVOLUME
に私のcronファイルをマウントしません。 /etc/cron.dDockerは外部起点(ホスト - ウィンドウ)を持つcronジョブファイルを実行しません
しかし、私がexec -it <container_id> bash
をコンテナに入れて、内部から正確に同じ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
のcron自体
* * * * * root curl --silent http://127.0.0.1/cronjob/cron_test_docker.php >> /var/www/html/log/docker_test.log 2>&1
cronと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
を通じて自分自身でのcronを実行しようとしたが、ソースが(
COPY
または
VOLUME
)外部にあり、魔法のように、コンテナ内に作成するときに動作したときに、それが機能していないのと同じ問題を得ました。
最初はアクセス許可の問題であると考えられ、chmod 644
(これはCOPY
の結果であったすべてのファイルのコンテナに作成されたファイルのアクセス許可であるため)を試しました。無駄にrwx
と許可のすべての可能な組み合わせを試した後
RUN chmod 644 /etc/cron.d/
。
また、クローンのラインを/etc/crontab
に追加しようとしましたが、crontab -l
では認識されません。
COPY crontab /tmp/crontab
RUN cat crontab >> /etc/crontab
コンテナたびに手動で作成するには面倒であるとして、それはCOPY
またはVOLUME
によって作成されたときだけで働いていた場合、それは本当に便利になります。
ご協力いただければ幸いです!
編集1:COPY
またはVOLUME
後
ファイルのパーミッションについてのいくつかの追加情報。私は私のdocker-compose
VOLUME
貫通フォルダをマウントすると
私は
/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
を示し私は手動でそれは次のようになり、容器内のcronファイルを作成する場合
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