docker-compose项目上使用

功能介绍

目前与业务开发相关的基础服务已有数十个之多,为了简化开发中各服务的启动工作,本工具将开发环境中需要的各服务集成进docker-compose,只要运行一条命令,就能将开发中依赖的各服务启动,并且拥有独立的redisRabbitMQ服务,规避团队开发时的数据冲突以及消息被他人消费等问题。

服务列表

- mq
- redis
- eureka
- config
- gateway
- auth
- base

示例

docker-compose.yml

# 指定本yml已从的哪个compose版本制定  的
version: '3'
services:
  eureka:
    image: com-luckyun-eureka:2.1.0-RELEASE-ARM
    restart: always
    container_name: eureka
    environment:
      RABBITMQ_HOST: 192.168.10.30
      RABBITMQ_USERNAME: guest
      RABBITMQ_PASSWORD: luckserver
      RABBITMQ_PORT: 5672
      RABBITMQ_VHOST: /
      SPRING_PROFILES_ACTIVE: dev
    ports:
    - "31000:31000"
  config:
    image: shiyq069/com-luckyun-config:2.7.1-20221212-RELEASE
    container_name: config
    environment:
      ADMIN_NAME: admin
      ADMIN_PASSWD: luckserver
      EUREKA_HOST: 192.168.10.30
      EUREKA_PORT: 31000
      REDIS_HOST: 192.168.10.30
      REDIS_PORT: 6379
      REDIS_PASSWORD: luckserver
      SPRING_PROFILES_ACTIVE: dev,native
    ports:
    - "31004:31004"
    # - "31010:31010"
    restart: always
    privileged: true
    depends_on:
    - eureka
  config-web:
    image: shiyq069/com-luckyun-config-web:2.7.1-20221212-RELEASE
    container_name: config-web
    environment:
      ADMIN_NAME: admin
      ADMIN_PASSWD: luckserver
    ports:
    - "8181:80"
    restart: always
    privileged: true
    extra_hosts:
      - "host.docker.internal:192.168.10.30"
    depends_on:
    - config
  auth:
    image: com-luckyun-auth-admin:2.7.13-RELEASE-ARM
    environment:
      EUREKA_HOST: 192.168.10.30
      EUREKA_PORT: 31000
      SPRING_PROFILES_ACTIVE: dev
    container_name: auth
    ports:
    - "31001:31001"
    privileged: true
    restart: always
    depends_on:
    - config
  base:
    image: com-luckyun-base-admin:2.7.47-RELEASE-ARM
    environment:
      EUREKA_HOST: 192.168.10.30
      EUREKA_PORT: 31000
      SPRING_PROFILES_ACTIVE: dev
    container_name: base
    ports:
    - "31002:31002"
    privileged: true
    restart: always
    depends_on:
    - config
  gateway:
    image: com-luckyun-gateway-admin:2.6.14-Alpha-20221019-ARM
    environment:
      EUREKA_HOST: 192.168.10.30
      EUREKA_PORT: 31000
      SPRING_PROFILES_ACTIVE: dev
    container_name: gateway
    ports:
    - "31006:31006"
    privileged: true
    restart: always
    depends_on:
    - config
    volumes:
      - /data/app/oss_temp:/data/upload_temp
  wmssub:
    image: 10.10.10.52:4000/wms-njjn:1.0.1-20240307-RELEASE-arm64
    environment:
      EUREKA_HOST: 192.168.10.30
      EUREKA_PORT: 31000
      SPRING_PROFILES_ACTIVE: dev
    container_name: wmssub
    ports:
    - "30025:30025"
    privileged: true
    restart: always
    depends_on:
    - config
  web-wms:
    image: 10.10.10.52:4000/scm-wms/test:1.0.1-RELEASE-arm64
    environment:
      APP_HOST: 192.168.10.30
      APP_PORT: 31006
    container_name: web-wms
    extra_hosts:
      - "host.docker.internal:192.168.10.30"
    ports:
    - "8099:80"
    privileged: true
    restart: always
    depends_on:
    - gateway

使用

由于集成环境并未集成数据库(因为数据库本身是需要团队共享联调的),所以在初次启动各服务之前,需要先配置Base服务BPM服务的数据源:

编辑根目下的.env文件

# 基础数据库
BASE_DRIVER=com.mysql.cj.jdbc.Driver
BASE_URL=jdbc:mysql://10.10.10.98:3306/luckyun_v2?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT
BASE_USERNAME=root
BASE_PASSWORD=luckserver

# 工作流库
BPM_DRIVER=com.mysql.cj.jdbc.Driver
BPM_URL=jdbc:mysql://10.10.10.98:3306/activiti6?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
BPM_USERNAME=root
BPM_PASSWORD=luckserver

将上面的配置换成本身项目的配置。

接下来,在本机HOST文件中加入如下配置:

127.0.0.1 host.docker.internal

host文件地址

  • Windows:C:\Windows\System32\drivers\etc
  • Mac:/etc/hosts
  • linux:/etc/hosts

在下载好的本项目根目录打开命令行

执行如下命令初始化并启动各服务:

docker-compose up

也可以选择必要的服务启动

docker-compose up redis mq eureka config gateway auth base

启动的服务越多消耗的本机资源越多,如果Docker分配的内存不足,eureka服务可能会出现如下错误:

 c.n.e.cluster.ReplicationTaskProcessor   : It seems to be a socket read timeout exception, it will retry later. if it continues to happen and some eureka node occupied all the cpu time, you should set property 'eureka.server.peer-node-read-timeout-ms' to a bigger value

解决方式是在Docker设置里调大分配的资源:

服务启动成功后

eureka服务访问地址:

http://localhost:31000/

config服务访问地址:

http://localhost:8181

默认账号:admin,密码:luckserver

如需要添加业务服务配置,在配置界面点击添加配置

本机的配置的环境可以导出,用于测试生产等环境的模板

镜像版本

.env文件中可以设置各基础服务的版本和私有云地址

# 镜像配置
REGISTER_URL=10.10.10.52:6000
MQ_IMAGE=rabbitmq:3-management
REDIS_IMAGE=redis:5.0.7

EUREKA_IMAGE=com-luckyun-eureka:2.1.0-RELEASE
CONFIG_IMAGE=com-luckyun-config:2.6.1-RELEASE
GATEWAY_IMAGE=com-luckyun-gateway-admin:2.6.2-RELEASE
AUTH_IMAGE=com-luckyun-auth-admin:2.6.4-RELEASE
BASE_IMAGE=com-luckyun-base-admin:2.6.14-RELEASE
BPM_API_IMAGE=com-luckyun-bpm-api:3.1.14-RELEASE
OSS_IMAGE=com-luckyun-oss-pro-admin:2.6.2-RELEASE
REPORT_IMAGE=com-luckyun-report-admin:1.1.3-RELEASE

在线模式

如果想直接使用线上的服务进行开发,可以取消下面的注释,并且配成相应的地址:

# 远程服务地址(需要加上http)
LUCKYUN_BASE=http://10.10.10.56:17568
LUCKYUN_AUTH=http://10.10.10.52:29752
LUCKYUN_OSS_PRO=http://10.10.10.52:29148
LUCKYUN_REPORT=http://10.10.10.52:21892

注:远程服务需要映射对应的端口

这样我们本机只要起必要的服务即可

docker-compose redis mq eureka config gateway

常用命令

初始化并启动各服务:

docker-compose up [service_name…]

docker-compose文件发生变化时,也需要执行该命令更新服务。

启动各服务:

docker-compose start [service_name…]

停止各服务:

docker-compose stop [service_name…]

重启各服务:

docker-compose restart [service_name…]

卸载各服务:

docker-compose down 

注:卸载所有服务会导致各服务数据丢失

列出项目中目前的所有容器:

docker-compose ps

查看容器的日志输出:

docker-compose logs [service_name…]

查看正在运行的容器:

docker exec -it  containerID  /bin/bash
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值