Sign inSign up

lhstack/rocketmq

By lhstack

•Updated over 3 years ago

rocketmq alpine镜像

Image
1

1.4K

lhstack/rocketmq repository overview

⁠dashboard

docker-compose.yml

version: '3'
services:
  dashboard:
    container_name: dashboard
    image: lhstack/rocketmq:dashboard-5.1.0
    ports:
    - '8080:8080'
    environment:
      NAMESRV_ADDRS: "192.168.3.188:9876,192.168.3.188:9886" # 多个namesrv地址用,隔开
      ACCESS_KEY: "RocketMq" # 开启了acl后使用
      SECRET_KEY: "12345678" # 开启了acl后使用
      USE_TLS: true # 是否启用tls
      LOGIN_REQUIRED: true #设置是否需要登录,对应环境变量DATA/users.properties
      ##users.properties
      # admin=admin,1  #1: 超级管理员 
      # user1=user1 
      # user1=user1,0  #0: 普通用户
      DATA: /root/data #数据保存路径
      MSG_TRACK_TOPIC_NAME: "test-track-topic" # 自定义消息轨迹topic,生产者和消费者如果使用了消息轨迹功能,如果需要在这个上面发送消息,并且开启消费轨迹,则三端需一致
    deploy:
      resources:
        limits:
          cpus: 50m
          memory: 512M
    logging:
      options:
        max-size: 1k
        max-file: 1

⁠rocketmq

docker-compose.yml

version: '3'
services:
  namesrv:
    container_name: namesrv
    image: lhstack/rocketmq:4.9.3-alpine
    environment:
      JAVA_OPT: "-Xmx64m -Xms64m -XX:MaxMetaspaceSize=32m"
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    restart: always
    ports:
    - '9886:9886'
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: '128M'
    networks:
      rocketmq:
        ipv4_address: 168.128.98.76
    command:
    - sh
    - -c
    - |
      cat >/namesrv.properties<<EOF
      listenPort=9886
      useEpollNativeSelector=true
      EOF
      mqnamesrv -c /namesrv.properties
  broker:
    container_name: broker
    image: lhstack/rocketmq:4.9.3-alpine
    environment:
      JAVA_OPT: "-Xmx384m -Xms384m -XX:MaxMetaspaceSize=128m"
    depends_on:
    - namesrv
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    restart: always
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: '512M'
    network_mode: host
    command:
    - sh
    - -c
    - |
      cat > /broker.conf<<EOF
      brokerClusterName = DefaultCluster
      brokerName = broker-a
      brokerId = 0
      deleteWhen = 04
      fileReservedTime = 48
      brokerRole = ASYNC_MASTER
      flushDiskType = ASYNC_FLUSH
      aclEnable = false
      listenPort = 10922
      namesrvAddr = 168.128.98.76:9886
      EOF
      mqbroker -c /broker.conf
networks:
  rocketmq:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: '168.128.0.0/16'

rocketmq.yml

apiVersion: v1
kind: Service
metadata:
  name: rocketmq-namesrv
spec:
  type: ClusterIP
  ports:
  - name: tcp
    port: 9876
  selector:
    app: rocketmq-namesrv
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: rocketmq
data:
  namesrv.properties: |
    listenPort=9876
    useEpollNativeSelector=true
  broker.conf: |
    brokerClusterName = DefaultCluster
    brokerName = broker-a
    brokerId = 0
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    aclEnable = true
    listenPort = 10911
    namesrvAddr = rocketmq-namesrv.default.svc.cluster.local:9876
  plain-acl.yml: |
    globalWhiteRemoteAddresses: 
    accounts:
    - accessKey: RocketMq
      secretKey: 12345678
      whiteRemoteAddress:
      admin: true
    - accessKey: TestAccount
      secretKey: TestSecret
      whiteRemoteAddress:
      admin: false
      defaultTopicPerm: DENY
      defaultGroupPerm: SUB
      topicPerms:
      - topicA=DENY
      groupPerms:
      - groupA=DENY
---
apiVersion: v1
kind: Pod
metadata:
  name: rocketmq-namesrv
  labels:
    app: rocketmq-namesrv
spec:
  volumes:
  - name: conf
    configMap:
      name: rocketmq
      items:
      - key: namesrv.properties
        path: namesrv.properties
  containers:
  - name: rocketmq-namesrv
    image: lhstack/rocketmq
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: conf
      mountPath: /namesrv.properties
      subPath: namesrv.properties
    resources:
      requests:
        cpu: 10m
        memory: 32Mi
      limits:
        cpu: 20m
        memory: 64Mi
    ports:
    - name: tcp
      containerPort: 9876
    env:
    - name: JAVA_OPT
      value: "-Xmx64m -Xms64m -Xmn1m"
    command:
    - sh
    - -c
    - |
      mqnamesrv -c /namesrv.properties
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rocketmq-broker
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rocketmq-broker
  template:
    metadata:
      labels:
        app: rocketmq-broker
    spec:
      volumes:
      - name: conf
        configMap:
          name: rocketmq
          items:
          - key: broker.conf
            path: broker.conf
      - name: plain
        configMap:
          name: rocketmq
          items:
          - key: plain-acl.yml
            path: plain-acl.yml
      - name: data
        hostPath:
          path: /home/rocketmq/data
      containers:
      - name: rocketmq-broker
        image: lhstack/rocketmq
        imagePullPolicy: IfNotPresent
        ports:
        - name: tcp
          containerPort: 10911
        resources:
          requests:
            cpu: 50m
            memory: 128Mi
          limits:
            cpu: 100m
            memory: 1.2Gi
        env:
        - name: JAVA_OPT
          value: "-Xmx1g -Xms1g"
        volumeMounts:
        - name: data
          mountPath: /root
        - name: conf
          mountPath: /broker.conf
          subPath: broker.conf
        - name: plain
          mountPath: /rocketmq/conf/plain_acl.yml
          subPath: plain-acl.yml
        command:
        - sh
        - -c
        - mqbroker -c /broker.conf

Tag summary

Content type

Image

Digest

Size

108.9 MB

Last updated

over 4 years ago

docker pull lhstack/rocketmq