F………………………………………………………………………………..
https://www.preining.info/blog/2018/05/docker-cron-mail-and-logs/
from debian:stretch-slim RUN apt-get -y update RUN apt-get install -y cron #ssmtp ADD . /app ADD crontab /etc/cron.d/mypackage RUN chmod 0644 /etc/cron.d/mypackage #ADD ssmtp.conf /etc/ssmtp/ssmtp.conf #RUN chown root.mail /etc/ssmtp/ssmtp.conf #RUN chmod 0640 /etc/ssmtp/ssmtp.conf CMD cron -f =====
docker-compose.yml version: '3.3' services: gethpeers: build: context: gethpeers/ volumes: - cronlog:/app/cronapplog:rw networks: - fastdev fakelog: build: context: fakelog/ volumes: - cronlog:/app/cronapplog:rw - filebeat:/usr/share/filebeat/data:rw networks: - fastdev volumes: cronlog: filebeat: networks: fastdev: driver: bridge gethpeers Dockerfile from debian:stretch-slim RUN apt-get -y update RUN apt-get install -y cron #ssmtp ADD . /app ADD crontab /etc/cron.d/mypackage RUN chmod 0644 /etc/cron.d/mypackage #ADD ssmtp.conf /etc/ssmtp/ssmtp.conf #RUN chown root.mail /etc/ssmtp/ssmtp.conf #RUN chmod 0640 /etc/ssmtp/ssmtp.conf CMD cron -f gethpeers crontab * * * * * root /app/run-cronjob /app/start.sh gethpeers run-cronjob #!/bin/bash if [ -z "$1" ] ; then echo "need name of cron job as first argument" >&2 exit 1 fi if [ ! -x "$1" ] ; then echo "cron job file $1 not executable, exiting" >&2 exit 1 fi if "$1" then exit 0 else echo "cron job $1 failed!" 2>/proc/1/fd/2 >&2 exit 1 fi gethpeers start.sh #!/bin/bash IP_PORT=xxx.xxx.xxx.xxx:8545 ETH_METHOD=admin_peers PEERS=$(curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"'$ETH_METHOD'","params":[],"id":1}' $IP_PORT | jq '.result[].network + {"project":"cronapp"}') printf "\n===== Now Geth Peers =====\n" printf "Peers: %s\n" $PEERS echo $PEERS >> /app/cronapplog/gethpeers.log fakelog Dockerfile FROM docker.elastic.co/beats/filebeat:6.5.4 COPY filebeat.yml /usr/share/filebeat/filebeat.yml USER root RUN chown root:filebeat /usr/share/filebeat/filebeat.yml USER filebeat fakelog filebeat.yml filebeat.prospectors: - type: log paths: - /app/cronapplog/gethpeers.log exclude_files: ['.gz$'] fields: srcname: "geth" srctype: "cron" filebeatserverip: "xxx.xxx.xxx.xxx" fields_under_root: true symlinks: true output.logstash: hosts: ["logstash:5044"]