mirror of
https://github.com/willfarrell/docker-crontab.git
synced 2025-06-25 21:34:06 +02:00
Updating README, adding JSON mapping support for consistency
This commit is contained in:
60
config-samples/config.sample.json
Normal file
60
config-samples/config.sample.json
Normal file
@ -0,0 +1,60 @@
|
||||
[
|
||||
{
|
||||
"comment": "cron with triggered commands",
|
||||
"schedule": "* * * * *",
|
||||
"command": "echo hello",
|
||||
"project": "crontab",
|
||||
"container": "myapp",
|
||||
"trigger": [
|
||||
{
|
||||
"command": "echo world",
|
||||
"container": "crontab_myapp_1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"comment": "map a volume",
|
||||
"schedule": "* * * * *",
|
||||
"dockerargs": "-d -v /tmp:/tmp",
|
||||
"command": "echo new",
|
||||
"image": "alpine:3.5"
|
||||
},
|
||||
{
|
||||
"comment": "use an ENV from inside a container",
|
||||
"schedule": "@hourly",
|
||||
"dockerargs": "-d -e FOO=BAR",
|
||||
"command": "sh -c 'echo hourly ${FOO}'",
|
||||
"image": "alpine:3.5"
|
||||
},
|
||||
{
|
||||
"comment": "trigger every 2 min",
|
||||
"schedule": "@every 2m",
|
||||
"command": "echo 2 minute",
|
||||
"image": "alpine:3.5",
|
||||
"trigger": [
|
||||
{
|
||||
"command": "echo world",
|
||||
"container": "crontab_myapp_1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"schedule": "*/5 * * * *",
|
||||
"command": "/usr/sbin/logrotate /etc/logrotate.conf"
|
||||
},
|
||||
{
|
||||
"comment": "Regenerate Certificate then reload nginx",
|
||||
"schedule": "43 6,18 * * *",
|
||||
"command": "sh -c 'dehydrated --cron --out /etc/ssl --domain ${LE_DOMAIN} --challenge dns-01 --hook dehydrated-dns'",
|
||||
"dockerargs": "--env-file /opt/crontab/env/letsencrypt.env -v webapp_nginx_tls_cert:/etc/ssl -v webapp_nginx_acme_challenge:/var/www/.well-known/acme-challenge",
|
||||
"image": "willfarrell/letsencrypt",
|
||||
"trigger": [
|
||||
{
|
||||
"command": "sh -c '/etc/scripts/make_hpkp ${NGINX_DOMAIN} && /usr/sbin/nginx -t && /usr/sbin/nginx -s reload'",
|
||||
"project": "conduit",
|
||||
"container": "nginx"
|
||||
}
|
||||
],
|
||||
"onstart": true
|
||||
}
|
||||
]
|
60
config-samples/config.sample.mapping.json
Normal file
60
config-samples/config.sample.mapping.json
Normal file
@ -0,0 +1,60 @@
|
||||
[
|
||||
{
|
||||
"comment": "cron with triggered commands",
|
||||
"schedule": "* * * * *",
|
||||
"command": "echo hello",
|
||||
"project": "crontab",
|
||||
"container": "myapp",
|
||||
"trigger": [
|
||||
{
|
||||
"command": "echo world",
|
||||
"container": "crontab_myapp_1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"comment": "map a volume",
|
||||
"schedule": "* * * * *",
|
||||
"dockerargs": "-d -v /tmp:/tmp",
|
||||
"command": "echo new",
|
||||
"image": "alpine:3.5"
|
||||
},
|
||||
{
|
||||
"comment": "use an ENV from inside a container",
|
||||
"schedule": "@hourly",
|
||||
"dockerargs": "-d -e FOO=BAR",
|
||||
"command": "sh -c 'echo hourly ${FOO}'",
|
||||
"image": "alpine:3.5"
|
||||
},
|
||||
{
|
||||
"comment": "trigger every 2 min",
|
||||
"schedule": "@every 2m",
|
||||
"command": "echo 2 minute",
|
||||
"image": "alpine:3.5",
|
||||
"trigger": [
|
||||
{
|
||||
"command": "echo world",
|
||||
"container": "crontab_myapp_1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"schedule": "*/5 * * * *",
|
||||
"command": "/usr/sbin/logrotate /etc/logrotate.conf"
|
||||
},
|
||||
{
|
||||
"comment": "Regenerate Certificate then reload nginx",
|
||||
"schedule": "43 6,18 * * *",
|
||||
"command": "sh -c 'dehydrated --cron --out /etc/ssl --domain ${LE_DOMAIN} --challenge dns-01 --hook dehydrated-dns'",
|
||||
"dockerargs": "--env-file /opt/crontab/env/letsencrypt.env -v webapp_nginx_tls_cert:/etc/ssl -v webapp_nginx_acme_challenge:/var/www/.well-known/acme-challenge",
|
||||
"image": "willfarrell/letsencrypt",
|
||||
"trigger": [
|
||||
{
|
||||
"command": "sh -c '/etc/scripts/make_hpkp ${NGINX_DOMAIN} && /usr/sbin/nginx -t && /usr/sbin/nginx -s reload'",
|
||||
"project": "conduit",
|
||||
"container": "nginx"
|
||||
}
|
||||
],
|
||||
"onstart": true
|
||||
}
|
||||
]
|
46
config-samples/config.sample.mapping.yml
Normal file
46
config-samples/config.sample.mapping.yml
Normal file
@ -0,0 +1,46 @@
|
||||
cron with triggered commands:
|
||||
command: echo hello
|
||||
comment: cron with triggered commands
|
||||
container: myapp
|
||||
project: crontab
|
||||
schedule: '* * * * *'
|
||||
trigger:
|
||||
- command: echo world
|
||||
container: crontab_myapp_1
|
||||
map a volume:
|
||||
command: echo new
|
||||
comment: map a volume
|
||||
dockerargs: -d -v /tmp:/tmp
|
||||
image: alpine:3.5
|
||||
schedule: '* * * * *'
|
||||
use an ENV from inside a container:
|
||||
command: sh -c 'echo hourly ${FOO}'
|
||||
comment: use an ENV from inside a container
|
||||
dockerargs: -d -e FOO=BAR
|
||||
image: alpine:3.5
|
||||
schedule: '@hourly'
|
||||
trigger every 2 min:
|
||||
command: echo 2 minute
|
||||
comment: trigger every 2 min
|
||||
image: alpine:3.5
|
||||
schedule: '@every 2m'
|
||||
trigger:
|
||||
- command: echo world
|
||||
container: crontab_myapp_1
|
||||
null:
|
||||
command: /usr/sbin/logrotate /etc/logrotate.conf
|
||||
schedule: '*/5 * * * *'
|
||||
Regenerate Certificate then reload nginx:
|
||||
command: sh -c 'dehydrated --cron --out /etc/ssl --domain ${LE_DOMAIN} --challenge
|
||||
dns-01 --hook dehydrated-dns'
|
||||
comment: Regenerate Certificate then reload nginx
|
||||
dockerargs: --env-file /opt/crontab/env/letsencrypt.env -v webapp_nginx_tls_cert:/etc/ssl
|
||||
-v webapp_nginx_acme_challenge:/var/www/.well-known/acme-challenge
|
||||
image: willfarrell/letsencrypt
|
||||
onstart: true
|
||||
schedule: 43 6,18 * * *
|
||||
trigger:
|
||||
- command: sh -c '/etc/scripts/make_hpkp ${NGINX_DOMAIN} && /usr/sbin/nginx -t &&
|
||||
/usr/sbin/nginx -s reload'
|
||||
container: nginx
|
||||
project: conduit
|
50
config-samples/config.sample.toml
Normal file
50
config-samples/config.sample.toml
Normal file
@ -0,0 +1,50 @@
|
||||
# toml files can only have top-loevl mappings, so this is the only sample
|
||||
["cron with triggered commands"]
|
||||
comment = "cron with triggered commands"
|
||||
schedule = "* * * * *"
|
||||
command = "echo hello"
|
||||
project = "crontab"
|
||||
container = "myapp"
|
||||
[["cron with triggered commands".trigger]]
|
||||
command = "echo world"
|
||||
container = "crontab_myapp_1"
|
||||
|
||||
["map a volume"]
|
||||
comment = "map a volume"
|
||||
schedule = "* * * * *"
|
||||
dockerargs = "-d -v /tmp:/tmp"
|
||||
command = "echo new"
|
||||
image = "alpine:3.5"
|
||||
|
||||
["use an ENV from inside a container"]
|
||||
comment = "use an ENV from inside a container"
|
||||
schedule = "@hourly"
|
||||
dockerargs = "-d -e FOO=BAR"
|
||||
command = "sh -c 'echo hourly ${FOO}'"
|
||||
image = "alpine:3.5"
|
||||
|
||||
["trigger every 2 min"]
|
||||
comment = "trigger every 2 min"
|
||||
schedule = "@every 2m"
|
||||
command = "echo 2 minute"
|
||||
image = "alpine:3.5"
|
||||
[["trigger every 2 min".trigger]]
|
||||
command = "echo world"
|
||||
container = "crontab_myapp_1"
|
||||
|
||||
["? /usr/sbin/logrotate /etc/logrotate.conf*/5 * * * *"]
|
||||
schedule = "*/5 * * * *"
|
||||
command = "/usr/sbin/logrotate /etc/logrotate.conf"
|
||||
|
||||
["Regenerate Certificate then reload nginx"]
|
||||
comment = "Regenerate Certificate then reload nginx"
|
||||
schedule = "43 6,18 * * *"
|
||||
command = "sh -c 'dehydrated --cron --out /etc/ssl --domain ${LE_DOMAIN} --challenge dns-01 --hook dehydrated-dns'"
|
||||
dockerargs = "--env-file /opt/crontab/env/letsencrypt.env -v ${PWD}:/etc/ssl -v webapp_nginx_acme_challenge:/var/www/.well-known/acme-challenge"
|
||||
image = "willfarrell/letsencrypt"
|
||||
onstart = true
|
||||
[["Regenerate Certificate then reload nginx".trigger]]
|
||||
command = "sh -c '/etc/scripts/make_hpkp ${NGINX_DOMAIN} && /usr/sbin/nginx -t && /usr/sbin/nginx -s reload'"
|
||||
project = "conduit"
|
||||
container = "nginx"
|
||||
|
40
config-samples/config.sample.yml
Normal file
40
config-samples/config.sample.yml
Normal file
@ -0,0 +1,40 @@
|
||||
- command: echo hello
|
||||
comment: cron with triggered commands
|
||||
container: myapp
|
||||
project: crontab
|
||||
schedule: '* * * * *'
|
||||
trigger:
|
||||
- command: echo world
|
||||
container: crontab_myapp_1
|
||||
- command: echo new
|
||||
comment: map a volume
|
||||
dockerargs: -d -v /tmp:/tmp
|
||||
image: alpine:3.5
|
||||
schedule: '* * * * *'
|
||||
- command: sh -c 'echo hourly ${FOO}'
|
||||
comment: use an ENV from inside a container
|
||||
dockerargs: -d -e FOO=BAR
|
||||
image: alpine:3.5
|
||||
schedule: '@hourly'
|
||||
- command: echo 2 minute
|
||||
comment: trigger every 2 min
|
||||
image: alpine:3.5
|
||||
schedule: '@every 2m'
|
||||
trigger:
|
||||
- command: echo world
|
||||
container: crontab_myapp_1
|
||||
- command: /usr/sbin/logrotate /etc/logrotate.conf
|
||||
schedule: '*/5 * * * *'
|
||||
- command: sh -c 'dehydrated --cron --out /etc/ssl --domain ${LE_DOMAIN} --challenge
|
||||
dns-01 --hook dehydrated-dns'
|
||||
comment: Regenerate Certificate then reload nginx
|
||||
dockerargs: --env-file /opt/crontab/env/letsencrypt.env -v webapp_nginx_tls_cert:/etc/ssl
|
||||
-v webapp_nginx_acme_challenge:/var/www/.well-known/acme-challenge
|
||||
image: willfarrell/letsencrypt
|
||||
onstart: true
|
||||
schedule: 43 6,18 * * *
|
||||
trigger:
|
||||
- command: sh -c '/etc/scripts/make_hpkp ${NGINX_DOMAIN} && /usr/sbin/nginx -t &&
|
||||
/usr/sbin/nginx -s reload'
|
||||
container: nginx
|
||||
project: conduit
|
Reference in New Issue
Block a user