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"]