Windows10 下使用 Docker 配置 Likeadmin 1.9.5 运行计划任务
参考
- https://tongyi.aliyun.com
- https://www.cnblogs.com/zgqbky/p/14271880.html
- https://blog.csdn.net/u011337602/article/details/100167625
- https://blog.csdn.net/qq_33656559/article/details/108489191
- https://doc.thinkphp.cn/v8_0/php_think_version.html
- https://gitee.com/likeadmin/likeadmin_php
- https://cron.ciding.cc/ Cron在线表达式生成器
环境
| 软件/系统 | 版本 | 说明 |
|---|---|---|
| Windows | windows 10 专业版 22H2 | 64 位操作系统, 基于 x64 的处理器 |
| VS Code | 1.99.3 | |
| Docker Desktop | 4.27.1 | |
| Docker | Docker version 28.0.1, build 068a01e | |
| Docker Compose | Docker Compose version v2.33.1-desktop.1 | |
| PHP | 8.0.30 (cli) (built: Nov 21 2023 16:16:21) ( NTS ) | |
| MySQL | 5.7.44 - MySQL Community Server (GPL) | |
| Nginx | 1.23.1 | |
| Redis | 7.4.0 | |
| Supervisord | 4.2.2 | |
| Likeadmin | 1.9.5 |
正文
- 创建文件与目录,如下:
- 创建本地日志目录
项目/docker/log/supervisord/logs - 创建本地配置文件目录
项目/docker/config/supervisord和项目/docker/config/supervisord/conf.d - 创建 supervisord 配置文件
项目/docker/config/supervisord/supervisord.ini,内容如下:[supervisord] # true 为前台运行,当前镜像已被likeadmin配置存在前台运行命令,无需再次设置 nodaemon=false # 告诉supervisord当前是root用户启动,这样supervisord就不会提示一些不需要的内容了 user=root # supervisord的pid文件路径,默认$CWD/supervisord.pid pidfile=/likeadmin_php/supervisord/supervisord.pid # 默认值:$CWD/supervisord.log,指定supervisord进程的log文件的路径 logfile=/likeadmin_php/supervisord/logs/supervisord.log [supervisorctl] # 包含以下目录内的所有配置文件 [include] files = /etc/supervisor/conf.d/*.conf - 创建项目配置文件
项目/docker/config/supervisord/conf.d/think_crontab.conf(可以按照项目进行拆分成为多个配置文件,这样比较清晰)[program:think_crontab] command=php think crontab directory=/likeadmin_php/server autostart=true autorestart=true stderr_logfile=/likeadmin_php/supervisord/logs/think_crontab.err.log stdout_logfile=/likeadmin_php/supervisord/logs/think_crontab.out.log
- 创建本地日志目录
- 修改
项目/docker/docker-compose.yml文件,在php容器volumes位置添加如下两行
完整文件如下- ./config/supervisord:/etc/supervisor # 这个路径对应supervisor的配置文件目录 - ./log/supervisord:/likeadmin_php/supervisord # 这个本地目录与容器内目录位置可以随意调整,仅仅存储logversion: '3' networks: likeadmin: driver: bridge services: nginx: container_name: likeadmin-nginx image: registry.cn-guangzhou.aliyuncs.com/likeadmin/nginx:1.23.1 restart: always depends_on: - "php" volumes: - ../server:/likeadmin_php/server - ./config/nginx/conf.d:/etc/nginx/conf.d - ./log/nginx/logs:/logs networks: - likeadmin ports: - "80:80" php: container_name: likeadmin-php image: registry.cn-guangzhou.aliyuncs.com/likeadmin/php:8.0.30.3-fpm restart: always working_dir: /likeadmin_php/server volumes: - ../server:/likeadmin_php/server # 添加supervisor文件开始 - ./config/supervisord:/etc/supervisor - ./log/supervisord:/likeadmin_php/supervisord # 添加supervisor文件结束 networks: - likeadmin ports: - "9000:9000" #user: "1000:1000" mysql: container_name: likeadmin-mysql image: registry.cn-guangzhou.aliyuncs.com/likeadmin/mysql:5.7.44 #X86架构 #image: registry.cn-guangzhou.aliyuncs.com/likeadmin/mysql:5.7.29-amd64 #arm架构 restart: always environment: MYSQL_ROOT_PASSWORD: root volumes: - ./data/mysql5.7.29/lib:/var/lib/mysql - ./config/mysql/mysqld.cnf:/etc/mysql/my.cnf networks: - likeadmin ports: - "3306:3306" redis: container_name: likeadmin-redis image: registry.cn-guangzhou.aliyuncs.com/likeadmin/redis:7.4.0 restart: always volumes: - ./data/redis:/data networks: - likeadmin ports: - "6379:6379" - 删除已有php容器与对应php镜像,在
项目/docker执行docker-compose up -d启动项目 - 在设置中配置定时任务就可以正常使用了

其他
备份一下likeadmin-php(registry.cn-guangzhou.aliyuncs.com/likeadmin/php:8.0.30.3-fpm)镜像内的/usr/local/bin/start_services.sh文件
#!/bin/bash
# 启动 php-fpm 服务并确保它以前台运行
php-fpm --nodaemonize &
# 启动 supervisor 服务
CONF_FILE="/etc/supervisor/supervisord.ini"
if [ -f "$CONF_FILE" ]; then
echo "start supervisord ..."
supervisord -c "$CONF_FILE"
else
echo "supervisord.ini not found, skipping supervisor startup"
fi
# 防止脚本退出, 确保容器继续运行
tail -f /dev/null
博 主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/18839714
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
地 址 :https://www.cnblogs.com/xiaqiuchu/p/18839714
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。

浙公网安备 33010602011771号