Dockerfile命令
采用alpine能大大缩减镜像包的大小
配置文件采用文件挂载的方式方便修改
#
# 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.
#
# Start from a Java image.
FROM openjdk:8-jre-alpine
ARG version
# Rocketmq version
ENV ROCKETMQ_VERSION 4.2.0
# Rocketmq home
ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION}
WORKDIR ${ROCKETMQ_HOME}
RUN mkdir -p \
/opt/logs \
/opt/store
COPY apache-rocketmq /opt/rocketmq-${ROCKETMQ_VERSION}
RUN chmod +x bin/mqbroker
#引用外部挂载的配置文件
CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT=" -Duser.home=/opt" && sh mqbroker -c /opt/rocketmq/conf/broker-a.properties
EXPOSE 10909 10911
VOLUME /opt/logs \
/opt/store
docker_build 命令
sudo docker build -t rocketmq-broker-a-m:4.2.0 .
docker_run命令
通过-v /root/conf:/opt/rocketmq/conf 命令将主机“/root/conf” 文件夹映射成容器的“/opt/rocketmq/conf”文件夹
#!/bin/bash
sudo docker run -d -p 10911:10911 -p 10909:10909 -v /root/conf:/opt/rocketmq/conf -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" --name rmqbroker_a_m rocketmq-broker-a-m:4.2.0