Debian11.9基于jre1.8的Dockerfile编写
# 使用Debian 11.9作为基础镜像
FROM debian:11.9
# 维护者信息(建议使用LABEL而不是MAINTAINER,因为MAINTAINER已被弃用)
LABEL maintainer="caibingsen"
# 创建一个目录来存放jre
RUN mkdir -p /usr/java/jre1.8.0_191-amd64
# 将jre1.8.0_191-amd64目录复制到/usr/java/
# 注意:这里假设jre1.8.0_191-amd64是一个目录,并且包含所有必要的文件
COPY jre1.8.0_191-amd64 /usr/java/jre1.8.0_191-amd64
# 设置JAVA_HOME环境变量
ENV JAVA_HOME=/usr/java/jre1.8.0_191-amd64
# 将jre的bin目录添加到PATH中,以便可以直接调用java等命令
ENV PATH=$JAVA_HOME/bin:$PATH
# 调整系统配置
# 1. 设置最大文件打开数和其他系统参数
# 2. 禁用IPv6(可选,根据需求决定是否添加)
# 3. 调整端口范围和其他网络相关参数(可选)
RUN echo "fs.file-max = 65536" >> /etc/sysctl.conf \
&& echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf \
&& echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf \
&& echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf \
&& echo "vm.swappiness = 10" >> /etc/sysctl.conf \
&& echo "net.core.somaxconn=2048" >> /etc/sysctl.conf \
# 设置文件描述符限制
&& echo "* soft nofile 60000" >> /etc/security/limits.d/user-nofile.conf \
&& echo "* hard nofile 60000" >> /etc/security/limits.d/user-nofile.conf \
# 设置进程数限制
&& echo "* soft nproc 50000" >> /etc/security/limits.d/20-nproc.conf \
&& echo "root soft nproc unlimited" >> /etc/security/limits.d/20-nproc.conf
# 容器启动时执行的命令(这里留空,因为通常您会在运行容器时指定)
CMD ["bash"]
容器镜像打包后345M,基础镜像124M
如果对你有帮助,一块也是爱