通过自定义的 Nacos 源码进行构建 Docker 镜像
下载源码
https://github.com/nacos-group/nacos-docker
下图为下载完成后的目录:

注意事项

Dockerfile 内容
进入 build 目录
FROM adoptopenjdk/openjdk8-openj9:alpine-slim
MAINTAINER greenarrow "greenarrow@163.com"
# set environment
ENV MODE="cluster" \
PREFER_HOST_MODE="ip"\
BASE_DIR="/home/nacos" \
CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \
CLUSTER_CONF="/home/nacos/conf/cluster.conf" \
FUNCTION_MODE="all" \
JAVA_HOME="/opt/java/openjdk" \
NACOS_USER="nacos" \
JAVA="${JAVA_HOME}/bin/java" \
JVM_XMS="512m" \
JVM_XMX="512m" \
JVM_XMN="512m" \
JVM_MS="128m" \
JVM_MMS="320m" \
NACOS_DEBUG="n" \
TOMCAT_ACCESSLOG_ENABLED="false" \
TIME_ZONE="Asia/Shanghai"
ARG NACOS_VERSION=2.3.2
ARG HOT_FIX_FLAG=""
WORKDIR $BASE_DIR
RUN set -x \
&& apk update \
&& apk upgrade --no-cache \
# 创建时区软链接,设置时区
&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo$TIME_ZONE > /etc/timezone
COPY nacos-server-${NACOS_VERSION}.tar.gz /home/
# 解压并清理无用文件
RUN tar -xzvf /home/nacos-server-${NACOS_VERSION}.tar.gz -C /home \
&& rm -rf /home/nacos-server-${NACOS_VERSION}.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql
# 添加自定义启动脚本和配置文件
ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties
RUN ls -l /home/nacos
RUN ls -l /home/nacos/bin
# set startup log dir
RUN mkdir -p logs \
&& cd logs \
&& touch start.out \
&& ln -snf /dev/stdout start.out \
&& ln -snf /dev/stderr start.out
RUN chmod +x bin/docker-startup.sh
EXPOSE 8848
ENTRYPOINT ["bin/docker-startup.sh"]
-
本文没有采用官方 Dockerfile里定义的的基础镜像,而是采用adoptopenjdk/openjdk8-openj9:alpine-slim目的为减少镜像体积大小。
构建镜像
build 目录下输入
docker build -t nacos:2.3.2-dm .

启动服务
构建完成后,通过自定义配置文件启动即可。

注意事项
-
windows 环境下 docker-startup.sh换行符问题,需切换为 Linux 环境下的换行符。

可通过各种编辑工具进行查看和修改。
-
脚本解释器问题,可将脚本文件的第一行换成
#!/bash/sh通过软链接指向容器真正的脚本解释器。 -
不同数据库的数据初始化问题。
夜雨聆风
