跳至主要內容

研发工具包

我的项目中间件docker约 821 字大约 3 分钟

1. 项目概览

toolopen in new window,研发工具包,基于docker快速搭建研发环境。

2. 前置环境

  1. docker-composeopen in new window

3. 项目目录

tool
 ├─build # 构建私有镜像
   └─** # 私有镜像构建目录(以镜像名为文件夹)
 └─Dockerfile # 私有构建脚本
   └─docker.push.sh # 上传镜像脚本
 ├─deploy # 部署镜像
   ├─** # 部署镜像挂载配置文件(以镜像名为文件夹)
   ├─docker-compose.yml # 部署描述文件
   ├─start.sh # 启动镜像脚本
   ├─stop.sh # 停止镜像脚本
   └─tool.env # 环境变量

4. 工具包列表

名称版本默认端口默认用户名/密码
mysqlopen in new window5.7.36open in new window3306root/123456
redisopen in new window6.2.13open in new window6379123456
nacosopen in new window2.2.0open in new window8848,9848,9849nacos/nacos
seataopen in new window1.6.1open in new window7091,8091
sentinelopen in new window1.8.6open in new window8080sentinel/sentinel
zookeeperopen in new window3.7.0open in new window2181
kafkaopen in new window3.1.0open in new window9092
rocketmqopen in new window5.0.0open in new window9876,10911,19876
nginxopen in new window1.25.2open in new window80

5. 构建私有镜像

提示

某些中间件官方没有提供docker镜像版本,需要编写 Dockerfile 文件构建私有镜像。如果获取免费的私有镜像参见2.1. docker镜像仓库

  1. 进入 build/*** 文件夹,运行如下脚本即可构建镜像至docker镜像仓库。
# 登录镜像仓库
docker login registry.cn-hangzhou.aliyuncs.com --username=jerryup
# eg. docker build -t registry.cn-hangzhou.aliyuncs.com/jerry-up/javaversion:1.0.0 .
docker build -t 镜像名 .
# eg. docker push registry.cn-hangzhou.aliyuncs.com/jerry-up/javaversion:1.0.0
docker push 镜像名
构建私有镜像
构建私有镜像

6. 部署镜像

提示

基于 docker-compose ,快速部署镜像搭建研发环境。

6.1. 修改配置文件

deploy/tool.env 文件指定挂载目录以及相应服务映射的端口。

内网IP默认配置为192.168.37.164,需修改为正确的宿主机内网IP。

配置项说明默认值
VOLUMES_PATH挂载目录.
CONTAINER_PREFIX容器名前缀jerry-up
MYSQL_PORTmysql端口3306
MYSQL_PASSWORDmysql密码123456
REDIS_PORTredis端口6379
REDIS_PASSWORDredis密码123456
NACOS_SERVER_IPnacos注册IP192.168.37.164
NACOS_SERVER_PORTnacos端口8848
NACOS_CLIENT_GRPC_PORTnacos客户端rpc端口9848
NACOS_SERVER_GRPC_PORTnacos服务端rpc端口9849
SEATA_IPseata注册IP127.0.0.1
SEATA_NACOS_APPLICATIONseata应用名seata-server
SEATA_GROUPseata组8080
SEATA_CONSOLE_PORTseata控制台端口7091
SEATA_SERVER_PORTseata服务端口8091
SENTINEL_PORTsentinel端口18080
SENTINEL_USER_NAMEsentinel用户名sentinel
SENTINEL_PASSWORDsentinel密码sentinel
ZK_CLIENT_PORTzookeeper控制台端口2181
ZK_ADMIN_PORTzookeeper管理端口2182
KAFKA_PORTkafka端口9092
ROCKETMQ_NAMESERVER_PORTrocketmq#NameServer端口9876
ROCKETMQ_BROKER_PORTrocketmq#Broker端口10911
ROCKETMQ_CONSOLE_PORTrocketmq#Dashboard端口19876
NGINX_PORTnginx端口80

6.2. 注意事项

  • mysql

    • 配置文件挂载至 deploy/mysql/my.ini
    • 第一次启动会执行 deploy/mysql/nacos.sqldeploy/mysql/seata.sql 数据库脚本。
  • seata-server

    • 配置文件挂载至 deploy/seata-server/application.yml
    • 第一次启动seata因为没有配置会失败,将 deploy/seata-server/SEATA_GROUP 压缩为zip文件之后导入nacos。
  • zookeeper

    • 配置文件挂载至deploy/zookeeper/zoo.cfg
  • kafka

    • 配置文件挂载至deploy/kafka/server.propertiesadvertised.listenersadvertised.host.name修改为宿主机IP。
  • rocketmq-broker

    • 配置文件挂载至 deploy/rocketmq-broker/broker.confbrokerIP1 为宿主机IP,该IP用于向rocketmq-mqnamesrv注册集群时指定地址。
  • rocketmq-console

    • 配置文件挂载至 deploy/rocketmq-console/users.properties,用于配置用户密码,默认密码为123456
  • nginx

    • 配置文件挂载至 deploy/nginx/nginx.conf

6.3. 部署

进入 deploy 目录,运行如下脚本进行部署。

docker-compose --env-file=tool.env up -d
启动
启动
服务列表
服务列表