Mac m1芯片 docker 安装部署xxl-job

目录

docker-hub上具有很多优秀的镜像,可以满足大家的大多数中间件/服务需求。但是,学会制作镜像也是较为重要的,以备不时之需。

场景

Mac m1芯片的电脑是arm架构的,但是docker-hub xxl官方的镜像并不支持arm架构。因此,需要自己制作一个镜像。

https://hub.docker.com/search?q=xxl-job-admin
官方(第一个)并不支持,当然可直接使用第三方的(第二个)

开始制作

1.下载github下载项目 打包xxl-job-admin

## 1下载项目
git clone https://gitclone.com/github.com/xuxueli/xxl-job.git
## 2进入项目
cd xxl-job
## 3打包项目
mvn clean package -Dmaven.test.skip=true
## 4复制xxl-job-admin的可运行jar包到xxl-job-admin目录下
cp xxl-job-admin/target/xxl-job-admin-*-SNAPSHOT.jar xxl-job-admin/
## 5先进入xxl-job-admin/ 里面有DockerFile文件
cd xxl-job-admin/
## 6制作镜像到我们的mac的docker上
## 7指令 docker build -t 自定义的镜像名:版本号 . ##不要忘了有个点.
docker build -t xxl-job-admin:2.0 .
## 8基于此镜像我们run一个容器。
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.0.102:3306/xxl_job_2.3.1?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=12345678" -p 8680:8080 -v xxljob-log:/data/applogs --name my-xxl-job-admin  -d xxl-job-admin:2.0

说明:
① -e PARMS= 参数 后面就是咱们的xxl-job-admin数据库的URL、用户名、密码
② -v 本地映射到docker容器的日志,甚至可以不写

访问localhost:8680/xxl-job-admin

2.按照上面的步骤,仍然有问题请看这里。

问题1:docker run时警告,大概率此时xxl-job无法使用了。

WARNING: The requested image’s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

在这里插入图片描述

问题1解决办法:

## 1删除容器
docker rm my-xxl-job-admin
## 2删除镜像
docker rmi xxl-job-admin:2.0
## 3修改DockerFile文件
vim DockerFile
## DockerFile 文件内容 开始
FROM mdsol/java8-jdk:latest
MAINTAINER xuxueli

ENV PARAMS=""

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ADD target/xxl-job-admin-*.jar /app.jar

ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
## DockerFile 文件内容 结束
## 4重新构建这个镜像
docker build -t xxl-job-admin:2.0 .
## 5基于此镜像我们run一个容器。
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.0.102:3306/xxl_job_2.3.1?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=12345678" -p 8680:8080 -v xxljob-log:/data/applogs --name my-xxl-job-admin  -d xxl-job-admin:2.0

在这里插入图片描述
本质原因是官网基于oenjdk:8-jre-slim 这个镜像不支持ARM

验证一下

localhost:8680/xxl-job-admin

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
部署xxl-job可以使用docker-compose进行快速部署,以下是一个简单的docker-compose.yml配置文件示例: ```yaml version: '3' services: xxl-job-admin: image: xxl-job-admin:2.1.2 container_name: xxl-job-admin ports: - "8080:8080" environment: - PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=password --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver --spring.redis.host=redis --spring.redis.port=6379 --spring.redis.timeout=1000 --spring.redis.database=0" depends_on: - mysql - redis mysql: image: mysql:5.7 container_name: mysql environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=xxl_job volumes: - ./mysql-data:/var/lib/mysql redis: image: redis:5.0.7 container_name: redis ports: - "6379:6379" volumes: - ./redis-data:/data ``` 这个配置文件中包含了3个服务,分别是xxl-job-admin、mysql和redis。 - xxl-job-admin:xxl-job的管理后台,使用xxl-job-admin:2.1.2镜像进行部署,将容器的8080端口映射到宿主机的8080端口。配置了环境变量PARAMS,用于指定xxl-job-admin的配置参数,包括mysql和redis的连接信息。 - mysql:使用mysql:5.7镜像进行部署容器内的数据目录挂载到宿主机的./mysql-data目录,设置root用户的密码和xxl-job需要使用的数据库名称。 - redis:使用redis:5.0.7镜像进行部署,将容器的6379端口映射到宿主机的6379端口,容器内的数据目录挂载到宿主机的./redis-data目录。 在配置文件所在的目录下,使用以下命令启动服务: ``` docker-compose up -d ``` 这个命令会启动所有服务,并将它们放到后台运行。可以使用以下命令查看服务运行状态: ``` docker-compose ps ``` 可以访问http://localhost:8080/xxl-job-admin/登录xxl-job的管理后台。默认的用户名和密码都是admin。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值