乐于分享
好东西不私藏

通过自定义的 Nacos 源码进行构建 Docker 镜像

通过自定义的 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 .

启动服务

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

注意事项

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

可通过各种编辑工具进行查看和修改。

  1. 脚本解释器问题,可将脚本文件的第一行换成#!/bash/sh 通过软链接指向容器真正的脚本解释器。

  2. 不同数据库的数据初始化问题。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 通过自定义的 Nacos 源码进行构建 Docker 镜像

评论 抢沙发

9 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮