使用docker-compose部署mysql版本的powerjob-server服务

本文详细介绍了如何在服务器上部署PowerJob-Server数据库(包括使用Docker和MySQL)、配置PowerJob-Server服务以及如何让worker连接到Server。步骤包括部署MySQL、编写docker-compose.yml、运行服务并验证,以及worker的配置设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想要在项目中集成powerjob,这个在worker端就比较好弄了,在你的yml里面配置连接参数就行了,但是有了worker,必须得有server才能进行正常的定时任务的调度呀。

今天就给大家分享一下,怎么将powerjob-server服务部署到服务器上面的。

如果你有mysql,就可以直接看第二步了

1. 部署mysql数据库

1.1 直接使用docker拉取mysql镜像

docker pull mysql:latest

1.2 然后使用docker-compose.yml文件进行运行

version: '3'
services:
  mysql:
    image: mysql:latest
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      - /***/****/mysql/data:/var/lib/mysql
      - /***/****/mysql/config/my.cnf:/etc/mysql/my.cnf
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci

your_password就是你创建的数据库密码。

1.3 运行mysql

docker-compose up -d

docker logs mysql -f 查看日志

运行成功后,使用navicat来连接数据库

1.4 初始化数据库

powerjob-server只需要创建一个数据库,在服务启动的时候会自动创建表,所以我们只用创建数据库就可以了

即运行SQL:CREATE DATABASE IF NOT EXISTS `powerjob-product` DEFAULT CHARSET utf8mb4

2. 部署powerjob-server服务

2.1 拉取镜像

docker pull tjqq/powerjob-server:latest	

2.2 编写docker-compose.yml文件

powerjob:
    image: tjqq/powerjob-server:latest	
    container_name: powerjob-server
	restart: always
    ports:
      - 7700:7700
      - 10086:10086
      - 10010:10010
    volumes:
      - /***/****/powerjob:/root/powerjob/server
	  - ~/.m2:/root/.m2
    environment:
        JVMOPTIONS: "-Xmx512m"
        PARAMS: "--oms.mongodb.enable=false --spring.profiles.active=product --spring.datasource.core.jdbc-url=jdbc:mysql://IP地址:3306/powerjob-product?useUnicode=true&characterEncoding=UTF-8 --spring.datasource.core.username=root  --spring.datasource.core.password=123456"

***表示你自己挂在的位置

2.3 使用docker命令运行服务

2.4 验证是否启动成功

访问http://ip:7700/#/oms/home,看到下面这个界面,代表运行成功

3.worker的连接powerjob-server

3.1引入依赖

<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-worker-spring-boot-starter</artifactId>
    <version>4.3.6</version>
</dependency>

3.2 配置文件编写

按照个人情况来进行替换

# akka 工作端口,可选,默认 27777
powerjob.worker.akka-port=27777
# 接入应用名称,用于分组隔离,推荐填写 本 Java 项目名称
powerjob.worker.app-name=my-powerjob-worker
# 调度服务器地址,IP:Port 或 域名,多值逗号分隔
powerjob.worker.server-address=127.0.0.1:7700,127.0.0.1:7701
# 通讯协议,4.3.0 开始支持 HTTP 和 AKKA 两种协议,官方推荐使用 HTTP 协议(注意 server 和 worker 都要开放相应端口)
powerjob.worker.protocol=http
# 持久化方式,可选,默认 disk
powerjob.worker.store-strategy=disk
# 任务返回结果信息的最大长度,超过这个长度的信息会被截断,默认值 8192
powerjob.worker.max-result-length=4096
# 单个任务追加的工作流上下文最大长度,超过这个长度的会被直接丢弃,默认值 8192
powerjob.worker.max-appended-wf-context-length=4096
# 同时运行的轻量级任务数量上限
powerjob.worker.max-lightweight-task-num=1024
# 同时运行的重量级任务数量上限
powerjob.worker.max-heavy-task-num=64

启动服务,看控制台日志

 代表注册成功,看你的页面,首页显示已经注册进来了,可以新建你的定时任务了!

<think>好的,我现在需要帮助用户了解如何使用Docker部署SnailJob服务端。首先,我得确认SnailJob是什么。SnailJob可能是一个分布式任务调度系统或者延迟任务处理平台,类似Elastic Job或XXL-JOB?不过可能用户指的是具体的某个开源项目,比如PowerJob的某个分支或者别名?但不确定,可能需要先快速查证。 假设SnailJob确实存在且是一个需要部署服务端应用,用户的需求是通过Docker部署Docker部署通常涉及Docker镜像、容器运行、环境变量配置、端口映射和数据持久化等步骤。 接下来,我需要考虑可能的步骤: 1. 获取SnailJob的Docker镜像:用户可能需要从Docker Hub或其他镜像仓库拉取官方镜像,或者自行构建。如果官方没有提供,可能需要用户自己编写Dockerfile。 2. 配置数据库:大多数任务调度系统需要数据库支持,比如MySQL或PostgreSQL。用户需要先部署数据库,并创建相应的数据库和用户权限。 3. 运行容器时的环境变量设置:比如数据库连接信息、服务器端口等。 4. 端口映射:将容器内的服务端口映射到宿主机,以便外部访问。 5. 数据持久化:通过Docker卷保存数据库数据或应用日志,防止容器重启后数据丢失。 可能的疑问点:SnailJob的具体配置项可能有哪些?是否有官方文档参考?比如数据库类型、表结构初始化脚本等。如果用户没有提供详细信息,可能需要做出合理假设,并建议用户查阅官方文档。 另外,可能需要注意版本兼容性,比如SnailJob服务版本与数据库版本的匹配。如果用户遇到问题,可能需要检查日志、网络连接、权限设置等。 现在需要组织这些思路,以清晰的步骤呈现给用户,同时保持语言简洁,避免技术术语过于复杂。如果某些步骤不确定,应建议用户参考官方文档或社区支持。 最后,确保使用中文,符合格式要求,如行内公式用$...$,独立公式用$$...$$,但在这个问题中可能不太涉及数学公式,所以重点放在Docker命令和配置上。同时,结构分点说明,步骤明确。</think>以下为使用Docker部署SnailJob服务端的通用步骤(请根据实际情况调整): --- ### 一、部署前准备 1. **环境要求** - 已安装DockerDocker Compose - 服务器开放端口(如:`10086`为Web端口,`10010`为GRPC端口) - 数据库准备(MySQL/PostgreSQL等,以MySQL为例) 2. **数据库配置** ```sql CREATE DATABASE snail_job DEFAULT CHARSET utf8mb4; CREATE USER 'snailjob'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON snail_job.* TO 'snailjob'@'%'; FLUSH PRIVILEGES; ``` --- ### 二、通过Docker运行 #### 方案1:直接运行容器 ```bash docker run -d \ --name snailjob-server \ -p 10086:10086 \ # Web管理界面 -p 10010:10010 \ # GRPC通信端口 -e SPRING_DATASOURCE_URL="jdbc:mysql://mysql_host:3306/snail_job?useUnicode=true&characterEncoding=UTF-8" \ -e SPRING_DATASOURCE_USERNAME=snailjob \ -e SPRING_DATASOURCE_PASSWORD=your_password \ snailjob/snailjob-server:latest ``` #### 方案2:使用Docker Compose 1. 创建`docker-compose.yml`: ```yaml version: '3' services: snailjob: image: snailjob/snailjob-server:latest ports: - "10086:10086" - "10010:10010" environment: SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/snail_job?useUnicode=true&characterEncoding=UTF-8" SPRING_DATASOURCE_USERNAME: snailjob SPRING_DATASOURCE_PASSWORD: your_password depends_on: - mysql mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: snail_job MYSQL_USER: snailjob MYSQL_PASSWORD: your_password volumes: - mysql_data:/var/lib/mysql volumes: mysql_data: ``` 2. 启动服务: ```bash docker-compose up -d ``` --- ### 三、验证部署 1. 访问Web界面: ``` http://服务器IP:10086 ``` 2. 检查日志: ```bash docker logs -f snailjob-server ``` --- ### 四、注意事项 1. **配置持久化**:建议挂载配置文件目录(如`-v ./config:/app/config`) 2. **网络互通**:确保Docker容器能访问MySQL实例 3. **版本匹配**:确认SnailJob服务版本与客户端/文档要求一致 4. **安全设置**:生产环境需配置防火墙、HTTPS及数据库白名单 --- > 🔍 **提示**:具体参数请参考[SnailJob官方文档](https://github.com/snailjob-dev/snail-job),部分配置项可能随版本更新变化。如遇表缺失,需执行项目提供的SQL初始化脚本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值