Tag: cron

不能在Laravel 5.4(PHP7)中使用Docker运行cron

这是一个问题 – 我们使用Docker和这个容器更新了Laravel 5.3到Laravel 5.4。https ://github.com/shin1x1/docker-laravel-on-php7-apache PHP版本从5.X增加到7.我们有这个cronjob * * * * * php /var/www/laravel/artisan schedule:run >>/dev/null 2>&1 这在以前的构build工作正常,也runnig这个命令 php /var/www/laravel/artisan schedule:run >>/dev/null 2>&1 直接从SSH也是好的。 但是它不能通过cron运行。 我们修改了cron命令来做这样的输出 * * * * * php /var/www/laravel/artisan schedule:run > /etc/log/faillog (我不记得语法准确,现在不能访问该机器) 我们得到这个日志 /bin/sh: 1: php: not found 任何想法得到这个工作?

每当gem'加载命令失败:耙'

寻找一些帮助。 我正在运行一个rails应用程序(v3.2.5)随时gem(v0.9.7)和rake (v11.2.2)。 我也在docker的容器图像做这个ruby:2.3 ( cron被安装和bundle install被运行) 这是我的schedule.rb set :environment, ENV['RAILS_ENV'] every '*/2 9,10,11,12,13,14,15,16 * * 1-5' do rake "import_csv", output: {:error => 'log/import_csv_errors.log', :standard => 'log/import_csv.log'}' end 注意 RAILS_ENV设置在容器启动到development 这是我的构build后的容器( crontab -l )上的cron作业: # Begin Whenever generated tasks for: /usr/src/app/config/schedule.rb */2 9,10,11,12,13,14,15,16 * * 1-5 /bin/bash -l -c 'cd /usr/src/app && RAILS_ENV=development bundle exec […]

如何从Cron作业访问Docker设置环境variables

我最近尝试从链接的docker容器中运行一个cron作业,并遇到一个问题。 我的主docker容器链接到一个postgres容器,它的端口号被docker设置为一个环境variables。 这个环境variables没有在〜/ .profile中设置,或者在运行我的cron作业时可以加载的任何其他源文件中。 那么我怎样才能从我的cron作业中访问这些环境variables? 谢谢!

在Docker容器中,cronjobs没有得到执行

我从Dockerfile中创build了一个Docker镜像,并且当基于这个镜像的容器正在运行时,我想定期执行一个cronjob。 我的Dockerfile是这个(相关部分): FROM l3iggs/archlinux:latest COPY source /srv/visitor WORKDIR /srv/visitor RUN pacman -Syyu –needed –noconfirm \ && pacman -S –needed –noconfirm make gcc cronie python2 nodejs phantomjs \ && printf "*/2 * * * * node /srv/visitor/visitor.js \n" >> cronJobs \ && crontab cronJobs \ && rm cronJobs \ && npm install -g node-gyp \ && […]

为什么Dockerfile中的cron服务没有运行?

在search这个问题时,我发现: cron -f应该启动服务。 所以我有: RUN apt-get install -qq -y git cron 接下来我有: CMD cron -f && crontab -l > pullCron && echo "* * * * * git -C ${HOMEDIR} pull" >> pullCron && crontab pullCron && rm pullCron 我的dockerfile部署没有错误,但cron不运行。 我能做些什么来增加一行来启动cron服务? PS: 我知道我的cron中的git函数实际上应该是一个钩子,但对于我(也可能是其他人),这是关于学习如何设置与Docker crons 🙂 PPS: 完整的Dockerfile(更新): RUN apt-get update && apt-get upgrade -y RUN […]

docker工人的Cron容器 – 他们是如何工作的?

我一直在使用docker工作了几个月,并且正在处理各种不同的服务器镜像。 一个一致的问题是许多服务器需要运行cron作业。 关于在线(包括Stackoverflow)有很多讨论,但我不完全理解它的机制。 目前,我正在使用主机的cron和docker exec进入每个容器来运行脚本。 我创build了一个关于脚本名称和位置的约定; 我所有的容器都有相同的脚本。 这可以避免主机的cron取决于容器。 基本上,一分钟一次,主机的cron做到这一点: for each container docker exec -it <containername> /cronscript/minute-script 这工作,但使容器取决于主机。 我想要做的是创build一个cron容器,在每个其他容器中启动一个脚本 – 但我不知道等效于从一个容器到另一个容器的“docker exec”。 我现在正在使用的具体情况是在MySQL容器中运行备份,运行Moodle作业需要每分钟运行一次。 最后,我会通过cron来做更多的事情。 Moodle使用命令行PHP脚本。 从另一个容器中的一个容器启动脚本的“适当”docker化方法是什么? 更新 :也许这有助于提及我的具体用例,但随着时间的推移会有更多。 目前,cron需要做到以下几点: 从MySQL执行数据库转储。 我可以通过mysqldump从cron容器的TCP链接来做到这一点; 这里的缺点是我不能将备份用户限制在主机127.0.0.1上。 我也可以通过某种方式将MySQL socket套接到cron容器中。 对Moodle安装进行定期维护。 Moodle包含一个运行所有维护任务的php命令行脚本。 这对我来说是个好主意。 我可以通过一个卷来运行这个脚本,但是Moodle的devise并不考虑这种情况,我也不排除竞争条件。 另外,我不希望在卷中安装moodle,因为它会使容器更新变得困难(请记住,在Docker中,当您使用新映像更新容器时,卷不会重新初始化)。 未来:在我的其他服务器上执行例行维护,例如清理电子邮件队列等。

docker exec在cron中不起作用

我有一个非常简单的命令,它可以独立的作为一个命令或者bash脚本运行,但是当我把它放在crontab中的时候不行 40 05 * * * bash /root/scripts/direct.sh >> /root/cron.log 有以下线路 PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/root/ # Mongo Backup docker exec -it mongodb mongodump -d meteor -o /dump/ 我试图改变脚本的URL到/usr/bin/scirpts/没有运气 我甚至试图直接在cron中运行脚本 26 08 * * * docker exec -it mongodb mongodump -d meteor -o /dump/ >> /root/cron.log 没有运气,任何帮助表示赞赏。 编辑 我在/root/cron.log文件中也看不到任何错误

从crontab运行“docker run”

我尝试从docker容器内运行的postgresql数据库中自动备份(每天晚上4次)。 #!/bin/sh CONTAINER=`docker ps|grep name_of_container|awk '{print $1}'` USER='postgre_user' PASSWORD='changed' BUDIR='/some/path/backup/' docker run -it –link $CONTAINER:db -v $BUDIR:/backup/ -e "PGPASSWORD=$PASSWORD" pg_dump -h db -U $USER -Fc -f /backup/$(date +%Y-%m-%d-%H-%M-%S).dump 我的crontab看起来像这样: 0 4 * * * /path/to/script.sh 该脚本工作正常,当我手动执行它也得到执行从cron(我试过* * * * *为debugging)。 我无法弄清楚如何使cron和脚本一起工作。 到目前为止我尝试过: 将variables写入日志文件 检查crontab的输出( * * * * * […] &>cron.log ) 在脚本中检查docker exec […] […]

如何在docker gitlab-ce中启用cron备份

我正在使用这个 Docker镜像来安装gitlab-ce 要configuration它,可以通过在./gitlab.rb:/etc/gitlab/gitlab.rb:ro处将其挂载为卷来覆盖名为gitlab.rb的文件 你可以在这里findgitlab.rb 在备份部分我目前有这样的: ## For setting up backups ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#backups # gitlab_rails['manage_backup_path'] = true # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" gitlab_rails['backup_archive_permissions'] = 0644 # See: http://doc.gitlab.com/ce/raketasks/backup_restore.html#backup-archive-permissions # gitlab_rails['backup_pg_schema'] = 'public' gitlab_rails['backup_keep_time'] = 604800 # gitlab_rails['backup_upload_connection'] = { # 'provider' => 'AWS', # 'region' => 'eu-west-1', # 'aws_access_key_id' => 'AKIAKIAKI', # 'aws_secret_access_key' => 'secret123' # […]

docker工人:Cronjob不工作

我正在尝试在Docker容器上运行cron作业。 我有一个正在运行的容器(Fedora 20)。 我还在容器中安装了cron包,并明确运行cron守护进程。 我也检查了cron.deny文件是空的,在/ etc /目录下没有名为cron.allow的文件。 Whenever I tried to set the cronjob by using crontab -e or trying to list the cron job using crontab -l I am getting following error. bash-4.2# crontab -l You (root) are not allowed to access to (crontab) because of pam configuration. bash-4.2# crontab -e You (root) are […]