1. 基础镜像模板
- 基于 centos 镜像
- 生成 base 镜像
Spring Cloud或Dubbo应用的Dockerfile示例(基于JAR包)
FROM centos:7.9.2009
MAINTAINER:ByAdmin
# 安装基础软件
RUN yum install -y epel-release \
&& yum -y install wget unzip telnet vim lsof net-tools bind-utils \
&& yum clean all
# 增加容器内中⽂支持。
ENV LANG="en_US.UTF-8"
# 增强Webshell使⽤体验。
ENV TERM=xterm
2. JDK 镜像模板
- 基于 base 镜像
- 生成 JDK 镜像
FROM centos:base
MAINTAINER:ByAdmin
# 准备 JDK 系统变量
ENV JAVA_HOME /usr/java/latest
ENV PATH $PATH:$JAVA_HOME/bin
ENV ADMIN_HOME /home/admin
RUN yum -y install kde-l10n-Chinese glibc-common \
&& yum -y install java-1.8.0-openjdk-devel
3. 业务镜像模板
- 基于 JDK 镜像
- 生成业务启动镜像
FROM maven:3.6-jdk-8-alpine AS build
WORKDIR /
RUN git clone http://gitlab.com/[git_repo]/[java_project].git \
&& mvn clean package -Dmaven.test.skip=true
FROM openjdk:8u342-jdk-buster
ADD http://repo.example.com/dd-java-agent-1.11.0-SNAPSHOT.jar /ddtrace-agent/
COPY --from=build /[java_project]/target/*.jar /
CMD ["java", \
"-XX:MinRAMPercentage=75.0", \
"-XX:MaxRAMPercentage=75.0", \
"-XX:InitialRAMPercentage=75.0", \
"-XX:MetaspaceSize=512M", \
"-XX:MaxMetaspaceSize=512M", \
"-XX:+UnlockExperimentalVMOptions", \
"-XX:+UseCGroupMemoryLimitForHeap", \
"-XX:+HeapDumpBeforeFullGC", \
"-XX:+HeapDumpAfterFullGC", \
"-XX:HeapDumpPath=/dump", \
"-XX:-UseAdaptiveSizePolicy", \
"-javaagent:/ddtrace-agent/dd-java-agent-1.11.0-SNAPSHOT.jar", \
"-Ddd.service.name=[java_project]", \
"-Ddd.env=prod", \
"-Ddd.version=v0.0.1", \
"-Ddd.agent.port=9529", \
"-Ddd.agent.host=192.168.30.32", \
"-Ddd.jmxfetch.check-period=1000", \
"-Ddd.jmxfetch.statsd.host=192.168.30.32", \
"-Ddd.jmxfetch.statsd.port=8125", \
"-Ddd.service.mapping=redis:redis_QD,mysql:mysql_QD,mongo:mongo_QD", \
"-Duser.timezone=Asia/Shanghai", \
"-jar", \
"/[java_project]-SNAPSHOT.jar"]