This is an automated email from the ASF dual-hosted git repository. scarb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/rocketmq-docker.git
commit 2832c684989413babfec803a43183aa7aba82699 Author: Scarb <[email protected]> AuthorDate: Sun Apr 7 16:26:25 2024 +0800 hw wlcb --- image-build/Dockerfile-centos-local | 107 ++++++++++++++++++++++++++++++++++++ image-build/build-image.sh | 2 + 2 files changed, 109 insertions(+) diff --git a/image-build/Dockerfile-centos-local b/image-build/Dockerfile-centos-local new file mode 100644 index 0000000..ec9e5af --- /dev/null +++ b/image-build/Dockerfile-centos-local @@ -0,0 +1,107 @@ + +# 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. +# + +################################################################################ +# Build stage 1 `builder`: +# Download and extract RocketMQ +################################################################################ +FROM eclipse-temurin:8-jdk-centos7 AS builder + +ARG version + +RUN echo 'nameserver 10.129.54.130' >> /etc/resolv.conf +RUN echo 'nameserver 10.72.55.82' >> /etc/resolv.conf +RUN echo '7.223.219.58 mirrors.tools.huawei.com' >> /etc/hosts +RUN cat /etc/hosts +RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tools.huawei.com/repository/conf/CentOS-7-anon.repo --no-check-certificate +RUN echo 'sslverify=0' >> /etc/yum.conf + +RUN set -eux \ + && yum -y update \ + && yum -y install curl gnupg unzip \ + && yum clean all -y + +COPY rocketmq.zip . + +RUN unzip rocketmq.zip \ + && mkdir -p /tmp/rocketmq-${version} \ + && mv rocketmq*/* /tmp/rocketmq-${version} + +################################################################################ +# Build stage 2: +# Make the actual RocketMQ docker image +################################################################################ +FROM eclipse-temurin:8-jdk-centos7 + +RUN echo >> '7.223.219.58 mirrors.tools.huawei.com' >> /etc/hosts +RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tools.huawei.com/repository/conf/CentOS-7-anon.repo --no-check-certificate +RUN echo 'sslverify=0' >> /etc/yum.conf + +ARG user=rocketmq +ARG group=rocketmq +ARG uid=3000 +ARG gid=3000 + +ARG version + +# Rocketmq version +ENV ROCKETMQ_VERSION ${version} + +# Rocketmq home +ENV ROCKETMQ_HOME /home/rocketmq/rocketmq-${ROCKETMQ_VERSION} + +# expose namesrv port +EXPOSE 9876 + +# expose broker ports +EXPOSE 10909 10911 10912 + +# 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 -l -u ${uid} -g ${gid} -m -s /bin/bash ${user} \ + && yum -y update \ + && yum -y install less openssl which \ + && yum clean all -y && rm -rf /var/cache/yum + + + +# Copy customized scripts +COPY scripts/ ${ROCKETMQ_HOME}/bin/ + +# Copy RocketMQ artifact from builder +COPY --from=builder --chown=${uid}:${gid} /tmp/rocketmq-${version}/ ${ROCKETMQ_HOME} + +# Override customized scripts for namesrv +# Override customized scripts for broker +# Export Java options +# Add ${JAVA_HOME}/lib/ext as java.ext.dirs +RUN mv ${ROCKETMQ_HOME}/bin/runserver-customize.sh ${ROCKETMQ_HOME}/bin/runserver.sh \ + && mv ${ROCKETMQ_HOME}/bin/runbroker-customize.sh ${ROCKETMQ_HOME}/bin/runbroker.sh \ + && chmod -R a+x ${ROCKETMQ_HOME}/bin/ \ + && export JAVA_OPT=" -Duser.home=/opt" \ + && sed -i 's/${JAVA_HOME}\/jre\/lib\/ext/${JAVA_HOME}\/jre\/lib\/ext:${JAVA_HOME}\/lib\/ext/' ${ROCKETMQ_HOME}/bin/tools.sh \ + && chown -R ${uid}:${gid} ${ROCKETMQ_HOME} + +USER ${user} + +WORKDIR ${ROCKETMQ_HOME}/bin + +ENTRYPOINT ["./docker-entrypoint.sh"] +# Dummy overridable parameter parsed by entrypoint +CMD ["dummy"] \ No newline at end of file diff --git a/image-build/build-image.sh b/image-build/build-image.sh index 3fcbd5b..8d4e082 100755 --- a/image-build/build-image.sh +++ b/image-build/build-image.sh @@ -44,6 +44,8 @@ case "${BASE_IMAGE}" in centos) docker build --no-cache -f Dockerfile-centos -t apache/rocketmq:${ROCKETMQ_VERSION} --build-arg version=${ROCKETMQ_VERSION} . ;; + centos-local) + docker build --no-cache -f Dockerfile-local -t apache/rocketmq:${ROCKETMQ_VERSION}-local --add-host mirrors.tools.huawei.com:7.223.219.58 --build-arg version=${ROCKETMQ_VERSION} . ;; *) echo "${BASE_IMAGE} is not supported, supported base images: centos, alpine" exit -1
