laravel 在docker环境中,如何执行定时任务
运行环境
docker
当前使用的 Laravel 版本?
laravel8.0
目前dockerfile
FROM webdevops/php-nginx:7.4-alpine
ARG timezone
ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
APP_ENV=local
COPY . /app
COPY ./deploy/nginx.conf /opt/docker/etc/nginx/vhost.conf
WORKDIR /app
RUN composer install --ignore-platform-reqs
RUN rm -rf ./public/storage
RUN php artisan storage:link
RUN chmod 777 -R storage
3. 您期望得到的结果?
1.如何执行laravel的定时任务和队列
2.多台机器的时候如何防止同时执行
独立部署出两个容器出来: A(队列容器):基于你PHP镜像构建,安装一个supervisor,用supervisor守护队列任务。
B(定时任务容器):建议使用 github.com/mcuadros/ofelia 定时器,它可以很友好的直接和PHP容器交互
看完这个项目,不是很理解具体的用法…能不能举一个例子 谢谢
新开独立的容器project_cron 里面只用装php-cli
RUN echo “* * * * * root php /www/wwwroot/project/artisan schedule:run >> /dev/null 2>&1” >>/etc/cron.d/pc
&& /etc/init.d/cron start
ENTRYPOINT [“tail”,”-f”,”/dev/null”]
参考 github.com/shunhua/dnmp