diff --git a/dockerfiles/services/services/cron/Dockerfile b/dockerfiles/services/services/cron/Dockerfile index fa9056f..f3f3556 100644 --- a/dockerfiles/services/services/cron/Dockerfile +++ b/dockerfiles/services/services/cron/Dockerfile @@ -1,10 +1,30 @@ FROM alpine:latest MAINTAINER Richard Morgan +USER root + +ENV DOCKER_VERSION=17.09.0-ce +ENV DOCKER_MACHINE_VERSION=v0.13.0 + +COPY ./periodic /etc/periodic +COPY ./crontab /var/spool/cron/crontabs/root +RUN chmod +x -R /etc/periodic/ + +RUN apk add --update \ + gpgme \ + curl \ + py-pip && \ + pip install --upgrade pip && \ + curl -L -o /tmp/docker-${DOCKER_VERSION}.tgz https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz && tar -xz -C /tmp -f /tmp/docker-${DOCKER_VERSION}.tgz && mv /tmp/docker/docker /usr/local/bin && \ + chmod +x /usr/local/bin/docker && \ + pip install docker-compose docker-cloud && \ + curl -L https://github.com/docker/machine/releases/download/${DOCKER_MACHINE_VERSION}/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \ + chmod +x /usr/local/bin/docker-machine && \ + # Cleanup + rm -rf /var/cache/apk/* && rm -rf /tmp/* && rm -rf /var/log/* -COPY ./periodic /etc/periodic/15min # Run the command on container startup #CMD cron && tail -f /var/log/cron.log #CMD tail -f /var/log/cron.log -CMD crond -l 2 -f +ENTRYPOINT crond -d 2 -f diff --git a/dockerfiles/services/services/cron/crontab b/dockerfiles/services/services/cron/crontab new file mode 100644 index 0000000..bfeb931 --- /dev/null +++ b/dockerfiles/services/services/cron/crontab @@ -0,0 +1,8 @@ +# do daily/weekly/monthly maintenance +# min hour day month weekday command +* * * * * run-parts /etc/periodic/1min +*/15 * * * * run-parts /etc/periodic/15min +0 * * * * run-parts /etc/periodic/hourly +0 2 * * * run-parts /etc/periodic/daily +0 3 * * 6 run-parts /etc/periodic/weekly +0 5 1 * * run-parts /etc/periodic/monthly diff --git a/dockerfiles/services/services/cron/docker-compose.yml b/dockerfiles/services/services/cron/docker-compose.yml index 3ac7880..c0508b9 100644 --- a/dockerfiles/services/services/cron/docker-compose.yml +++ b/dockerfiles/services/services/cron/docker-compose.yml @@ -4,6 +4,10 @@ # docker-compose build && docker push dkregistry.xai-corp.net:5000/cron:latest # DOCKER_HOST=dkhost:2376 docker stack deploy -c docker-compose.yml services +# DOCKER_HOST=dkhost:2376 docker-compose up -d +# DOCKER_HOST=dkhost:2376 docker-compose exec -it cron_cron_1 /bin/sh + + version: '3' services: @@ -13,6 +17,9 @@ services: context: "" dockerfile: Dockerfile + volumes: + - /var/run/docker.sock:/var/run/docker.sock + deploy: mode: replicated @@ -26,12 +33,6 @@ services: cpus: '0.5' memory: 256M - logging: - driver: syslog - options: - syslog-address: "tcp+tls://logs6.papertrailapp.com:38577" - tag: "{{.Name}}/{{.ID}}" - #networks: # default: # external: diff --git a/dockerfiles/services/services/cron/periodic/1min/abcapi-import.sh b/dockerfiles/services/services/cron/periodic/1min/abcapi-import.sh new file mode 100644 index 0000000..8f01a08 --- /dev/null +++ b/dockerfiles/services/services/cron/periodic/1min/abcapi-import.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# dkregistry.xai-corp.net:5000/xaicorp/abc-api/api:dev + +#docker run -d --name abcapi_scheduler \ +# -v /opt/shared/abcapi/storage/app:/opt/project/storage/app \ +# -e "APP_ENV: prod" \ +# -e "APP_DEBUG: 'false'" \ +# -e "APP_KEY: c578846e0a7fe6996d8cb259d375aaa0" \ +# -e "APP_TIMEZONE: UTC" \ +# -e "DB_CONNECTION: pgsqld"b \ +# -e "DB_HOST: services_postgres" \ +# -e "DB_PORT: 5432" \ +# -e "DB_DATABASE: abcapi_api" \ +# -e "DB_USERNAME: abcapi" \ +# -e "DB_PASSWORD: 'JAIobu3i18bC#2n2$$'" \ +# -e "CACHE_DRIVER: redis" \ +# -e "QUEUE_DRIVER: sync" \ +# dkregistry.xai-corp.net:5000/xaicorp/abc-api/api:latest \ +# php artisan schedule:run diff --git a/dockerfiles/services/services/cron/periodic/1min/hellominute b/dockerfiles/services/services/cron/periodic/1min/hellominute new file mode 100644 index 0000000..25ea98a --- /dev/null +++ b/dockerfiles/services/services/cron/periodic/1min/hellominute @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "Hello minute" >> /var/log/cron.log 2>&1