KUBERNETES DEPLOYMENT快速部署ROCKETMQ 4.9.2 DLEDGER集群 1-镜像
KUBERNETES DEPLOYMENT快速部署ROCKETMQ 4.9.2 DLEDGER集群 2-NAMESERVER
KUBERNETES DEPLOYMENT快速部署ROCKETMQ 4.9.2 DLEDGER集群 3-BROKER
KUBERNETES DEPLOYMENT快速部署ROCKETMQ 4.9.2 DLEDGER集群 4-DASHBOARD

镜像制作

clone:

cd /root 
git clone https://github.com/apache/rocketmq-docker.git
cd rocketmq-docker-master/image-build

Dockerfile-centos修改

包处理部分适配下版本号,否则报错:

    unzip rocketmq.zip ; \
    mv rocketmq-{ROCKETMQ_VERSION}*/* . ; \
    rmdir rocketmq-{ROCKETMQ_VERSION}*  ; \
    rm rocketmq.zip rocketmq.zip.asc KEYS

修改后的Dockerfile:

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

FROM centos:7

RUN yum install -y java-1.8.0-openjdk-devel.x86_64 unzip gettext nmap-ncat openssl, which gnupg, telnet \
 && yum clean all -y

# FROM openjdk:8-jdk
# RUN apt-get update && apt-get install -y --no-install-recommends \
#      bash libapr1 unzip telnet wget gnupg ca-certificates \
#  && rm -rf /var/lib/apt/lists/*

ARG user=rocketmq
ARG group=rocketmq
ARG uid=3000
ARG gid=3000

# RocketMQ is run with user `rocketmq`, uid = 3000
# If you bind mount a volume from the host or a data container,
# ensure you use the same uid
RUN groupadd -g {gid}{group} \
    && useradd -u {uid} -g{gid} -m -s /bin/bash {user}

ARG version

# Rocketmq version
ENV ROCKETMQ_VERSION{version}

# Rocketmq home
ENV ROCKETMQ_HOME  /home/rocketmq/rocketmq-{ROCKETMQ_VERSION}

WORKDIR{ROCKETMQ_HOME}

RUN set -eux; \
    curl -L https://archive.apache.org/dist/rocketmq/{ROCKETMQ_VERSION}/rocketmq-all-{ROCKETMQ_VERSION}-bin-release.zip -o rocketmq.zip; \
    curl -L https://archive.apache.org/dist/rocketmq/{ROCKETMQ_VERSION}/rocketmq-all-{ROCKETMQ_VERSION}-bin-release.zip.asc -o rocketmq.zip.asc
; \    #https://www.apache.org/dist/rocketmq/KEYS
    curl -L https://www.apache.org/dist/rocketmq/KEYS -o KEYS; \
    \
    gpg --import KEYS; \
    gpg --batch --verify rocketmq.zip.asc rocketmq.zip ; \
    unzip rocketmq.zip ; \
    mv rocketmq-{ROCKETMQ_VERSION}*/* . ; \
    rmdir rocketmq-{ROCKETMQ_VERSION}*  ; \
    rm rocketmq.zip rocketmq.zip.asc KEYS

# add scripts
COPY scripts/ {ROCKETMQ_HOME}/bin/

RUN chown -R{uid}:{gid}{ROCKETMQ_HOME}

# expose namesrv port
EXPOSE 9876

# add customized scripts for namesrv
RUN mv {ROCKETMQ_HOME}/bin/runserver-customize.sh{ROCKETMQ_HOME}/bin/runserver.sh \
 && chmod a+x {ROCKETMQ_HOME}/bin/runserver.sh \
 && chmod a+x{ROCKETMQ_HOME}/bin/mqnamesrv

# expose broker ports
EXPOSE 10909 10911 10912

# add customized scripts for broker
RUN mv {ROCKETMQ_HOME}/bin/runbroker-customize.sh{ROCKETMQ_HOME}/bin/runbroker.sh \
 && chmod a+x {ROCKETMQ_HOME}/bin/runbroker.sh \
 && chmod a+x{ROCKETMQ_HOME}/bin/mqbroker

# export Java options
RUN export JAVA_OPT=" -Duser.home=/opt"

# Add {JAVA_HOME}/lib/ext as java.ext.dirs
RUN sed -i 's/{JAVA_HOME}\/jre\/lib\/ext/{JAVA_HOME}\/jre\/lib\/ext:{JAVA_HOME}\/lib\/ext/' {ROCKETMQ_HOME}/bin/tools.sh

USER{user}

WORKDIR ${ROCKETMQ_HOME}/bin

打镜像 版本4.9.2

sh build-image.sh 4.9.2 centos
docker tag apacherocketmq/rocketmq:4.9.2 test/rocketmq:4.9.2

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code