NACOS
这个dockerfile适合构建达梦版NACOS2.2.0的docker-arm镜像,把数据库信息改成自己的就行
# 使用适合 ARM 架构的基础镜像,基于 JDK 11
FROM openjdk:11-jdk-slim
# 设置环境变量
ENV NACOS_VERSION=2.2.0
ENV NACOS_HOME=/home
ENV DB_URL=jdbc:dm://IP:5236/SYJT_NACOS_PROD
ENV DB_USER=NACOS_PROD
ENV DB_DRIVER=dm.jdbc.driver.DmDriver
# 创建工作目录
RUN mkdir -p $NACOS_HOME
# 复制本地 Nacos ZIP 文件到容器中
COPY nacos-2.2.0.zip /tmp/nacos.zip
# 解压 Nacos ZIP 文件并移动到指定目录
RUN apt-get update && apt-get install -y unzip bash \
&& unzip /tmp/nacos.zip -d $NACOS_HOME \
&& rm /tmp/nacos.zip
# 设置工作目录
WORKDIR $NACOS_HOME/nacos-2.2.0
# 确保 startup.sh 可执行
RUN chmod +x $NACOS_HOME/nacos-2.2.0/distribution/target/nacos-server-2.2.0/nacos/bin/startup.sh
# 暴露 Nacos 默认端口
EXPOSE 8848
# 使用 bash -c 启动 Nacos
CMD ["bash", "-c", "$NACOS_HOME/nacos-2.2.0/distribution/target/nacos-server-2.2.0/nacos/bin/startup.sh -m standalone && tail -f /dev/null"]
Redis
这个Dockerfile用于构建redis6-ARM版本的docker镜像
# 使用ARM架构的基础镜像
FROM arm64v8/alpine:3.14
# 设置工作目录
WORKDIR /home/redis
# 安装 Redis 6.2.6 或更高版本
RUN apk add --no-cache redis=6.2.12-r0
# 复制配置文件到容器内
COPY redis.conf /etc/redis/redis.conf
# 暴露Redis的默认端口
EXPOSE 6379
# 设置启动命令
CMD ["redis-server", "/etc/redis/redis.conf"]
RocketMQ
这个Dockerfile用于构建RocketMQ-ARM版本的docker镜像
# 使用 ARM 兼容的基础镜像
FROM arm64v8/openjdk:11-jdk-slim
# 设置工作目录
WORKDIR /home/rocketmq
# 下载并解压 RocketMQ 5.1.0
RUN apt-get update && apt-get install -y wget unzip && \
wget https://archive.apache.org/dist/rocketmq/5.1.0/rocketmq-all-5.1.0-bin-release.zip && \
unzip rocketmq-all-5.1.0-bin-release.zip && \
mv rocketmq-all-5.1.0-bin-release rocketmq-5.1.0 && \
rm rocketmq-all-5.1.0-bin-release.zip
# 复制自定义配置目录
COPY conf /home/rocketmq/rocketmq-5.1.0/conf
# 暴露端口
EXPOSE 9876 10911 10909
# 启动 NameServer 和 Broker
CMD sh -c "nohup sh /home/rocketmq/rocketmq-5.1.0/bin/mqnamesrv & nohup sh /home/rocketmq/rocketmq-5.1.0/bin/mqbroker -c /home/rocketmq/rocketmq-5.1.0/conf/broker.conf & tail -f /dev/null"
Nginx
这个Dockerfile用于构建Nginx-ARM版本的docker镜像
# 使用ARM架构的Alpine edge版本作为基础镜像
FROM arm64v8/alpine:edge
# 设置工作目录
WORKDIR /home/nginx
# 安装Nginx 1.20以上的版本
RUN apk add --no-cache nginx
# 复制配置文件到容器内
COPY nginx /etc/nginx
# 复制静态文件到容器内
COPY web /opt/web
# 暴露Nginx的默认端口
EXPOSE 30061 30060
# 设置启动命令
CMD ["nginx", "-g", "daemon off;"]
Minio
这个Dockerfile用于构建Minio-ARM版本的docker镜像
# 使用 ARM 架构的基础镜像(如果需要)
FROM arm64v8/alpine:latest
# 设置工作目录
WORKDIR /home/minio
# 下载 ARM 版本的 MinIO 并设置权限
RUN wget https://dl.min.io/server/minio/release/linux-arm64/minio && \
chmod +x minio && \
mkdir -p /home/data && \
mkdir -p /home/minio/log && \
mkdir -p /etc/default && \
chmod -R 777 /home/data
# 复制配置文件到容器中
COPY minio /etc/default/
# 设置配置文件的权限
RUN chmod +x /etc/default/minio
# 暴露端口
EXPOSE 9000 36249
# 启动 MinIO
CMD ["sh", "-c", "source /etc/default/minio && env && ./minio server $MINIO_VOLUMES $MINIO_OPTS --console-address :36249"]