兼容 信创鲲鹏/M1 arm64架构的kafka镜像

当前热度比较高的kafka镜像是wurstmeister/kafka,在dockerhub上有很多的使用次数。我起初很开心最新版支持arm64架构,然后拉到本地用Mac M1跑也很完美

 但是!我放到信创鲲鹏的生产环境,导入镜像没问题,但一用docker-compose启动就会报以下错误:

standard_init_linux.go:219: exec user process caused: exec format error

经过各种搜寻资料,大多说是镜像的架构不对,比如把x86的镜像放到了arm环境下跑就会出错。但我确实拉的是arm64的镜像,因为M1环境下跑的很好,也检查了本地镜像的cpu架构无误。

然后又找了一圈别的镜像,感觉不是很好用,就决定研究下这个镜像怎么build的。

找到镜像作者的源码仓库GitHub - wurstmeister/kafka-docker: Dockerfile for Apache Kafka

源码拉到本地,心想先自己根据源码build一个镜像试试,然后就先打了个镜像

本地M1环境跑是ok,而且放到信创环境下竟然神奇般的好了???

什么也没改,就重新打了个镜像而已....

暂时先不管原因了,我本地打好的推到仓库,大家可以取用,或者自行用作者的源码build也可以。

镜像地址:Docker Hub

拉取命令:docker pull qinchz/kafka:2.13-2.8.1

docker-compose使用示例:

version: '2'
services:
  zookeeper:
    image: zookeeper:3.5.9-temurin
    volumes:
      - ~/dev/docker/data/zookeeper/data:/data
    ports:
      - "2181:2181"
  kafka:
    image: qinchz/kafka:2.13-2.8.1
    # hostname: kafka
    depends_on:
      - zookeeper
    volumes:
      - ~/dev/docker/data/kafka/kafka-logs:/kafka
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "9094:9094"
      - "9997:9997"
    environment:
      - TZ=CST-8
      - KAFKA_NODE_ID=1
      - KAFKA_BROKER_ID=1
      - KAFKA_LOG_DIRS=/kafka/kafka-logs
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      # 非必须,设置自动创建 topic
      - KAFKA_AUTO_CREATE_TOPICS_ENABLE=true
      - KAFKA_LISTENERS=INSIDE://:9092,OUTSIDE://:9094
      - KAFKA_ADVERTISED_LISTENERS=INSIDE://kafka:9092,OUTSIDE://kafka-server:9094
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE
      # 非必须,设置对内存
      - KAFKA_HEAP_OPTS=-Xmx1G -Xms1G
      # 非必须,设置保存180天数据,默认7天
      - KAFKA_LOG_RETENTION_HOURS=4320
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:v0.4.0
    ports:
      - 9011:8080
    depends_on:
      - zookeeper
      - kafka
    environment:
      KAFKA_CLUSTERS_0_NAME: local
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
      SERVER_SERVLET_CONTEXT_PATH: /kafkaui
      AUTH_TYPE: "LOGIN_FORM"
      SPRING_SECURITY_USER_NAME: admin
      SPRING_SECURITY_USER_PASSWORD: admin

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>