我有一個運行cron作業的容器存在問題。這項工作執行管理員刪除一些elasticsearch指數。我已經閱讀了許多類似的帖子,但我仍然沒有得到它。這項工作似乎稱爲策展人,但索引不會被刪除。如果我手動運行它,相同的命令工作。作爲容器中的cron作業的館長不能正常工作
這是我Dockerfile
FROM ubuntu:xenial
RUN apt-get update && apt-get install python-pip rsyslog -y
RUN groupadd -r curator && useradd -r -g curator curator
RUN pip install elasticsearch-curator
RUN apt-get install cron
COPY delete_indices_cron /etc/cron.d/delete_indices_cron
COPY ./delete_indices.sh /opt/delete_indices.sh
COPY ./configs /opt/config
RUN ["crontab", "/etc/cron.d/delete_indices_cron"]n
RUN chmod 644 /etc/cron.d/delete_indices_cron
RUN chmod 744 /opt/delete_indices.sh
RUN touch /var/log/cron.log
CMD ["rsyslogd"]
ENTRYPOINT ["cron","-f","&&", "tail","-f","/var/log/cron.log"]
我
docker run -d --link elasticsearch:elasticsearch --name curator mycurator4
和泊塢窗PS輸出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eea96a48aa3a mycurator4 "cron -f && tail -f /" 15 minutes ago Up 15 minutes curator
e584c9b090c8 vagrant-registry.vm:5000/sslserver "python /sslServer/ss" 2 weeks ago Up 2 weeks 0.0.0.0:12121->12121/tcp sslserver
20eee9943664 kibana:4 "/docker-entrypoint.s" 2 weeks ago Up 2 weeks 0.0.0.0:5601->5601/tcp kibana
8c462586982e logstash:2 "/docker-entrypoint.s" 2 weeks ago Up 2 weeks 0.0.0.0:5044->5044/tcp, 0.0.0.0:12201->12201/tcp, 0.0.0.0:12201->12201/udp logstash
c971fa3e357b elasticsearch:2 "/docker-entrypoint.s" 2 weeks ago Up 2 weeks 0.0.0.0:9200->9200/tcp, 9300/tcp elasticsearch
4af9a78a4b1f jenkins "/bin/tini -- /usr/lo" 2 weeks ago Up 2 weeks 0.0.0.0:8080->8080/tcp, 50000/tcp
jenkins
UPDATE運行映像之後:問題是,館長不能被發現作爲環境中的命令。當我將它改爲相對路徑時,問題就解決了。也基於一些建議,我從/opt/delete_indices.sh中刪除了.sh,因爲ansible「不喜歡這個」!
Hi @Nick。我遵循https://www.ekito.fr/people/run-a-cron-job-with-docker/中的例子,當我運行它時,我沒有問題。順便說一句,我改變了入口點只保留cron -f。畢竟沒有區別。碼頭日誌什麼也沒有返回。從系統日誌我有這樣的行:CRON [101]:(root)CMD(/opt/delete_indices.sh 2>&1)\ n CRON [100] :(CRON)info(沒有MTA安裝,丟棄輸出)。另外,如果我按照你的建議做,我是否需要在圖像中設置入口點? – b10n1k