Windows10 下使用 Docker 配置 Likeadmin 1.9.5 运行计划任务

参考

环境

软件/系统 版本 说明
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

正文

  1. 创建文件与目录,如下:
    1. 创建本地日志目录 项目/docker/log/supervisord/logs
    2. 创建本地配置文件目录 项目/docker/config/supervisord项目/docker/config/supervisord/conf.d
    3. 创建 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
      
    4. 创建项目配置文件 项目/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
      
  2. 修改项目/docker/docker-compose.yml文件,在php容器volumes位置添加如下两行
    - ./config/supervisord:/etc/supervisor # 这个路径对应supervisor的配置文件目录
    - ./log/supervisord:/likeadmin_php/supervisord # 这个本地目录与容器内目录位置可以随意调整,仅仅存储log
    
    完整文件如下
    version: '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"
    
    
  3. 删除已有php容器与对应php镜像,在项目/docker执行docker-compose up -d启动项目
  4. 在设置中配置定时任务就可以正常使用了
    image

其他

备份一下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
posted @ 2025-04-22 00:04  夏秋初  阅读(86)  评论(0)    收藏  举报