自定义构建jdk镜像

1、镜像带有jdk工具

# 使用 OpenJDK 8 的 Alpine 版本作为基础镜像
FROM openjdk:8-jdk-alpine

# 设置环境变量
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV PATH $JAVA_HOME/bin:$PATH

# 设置时区为东八区 (Asia/Shanghai)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ENV LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LC_ALL=zh_CN.UTF-8

# 安装必要的工具(jstack 和 jmap 默认包含在 JDK 中)
RUN apk add --no-cache bash

 2、镜像不带有jdk工具

# 使用 openjdk:8-jre-slim 作为基础镜像
FROM openjdk:8-jre-slim

# 设置环境变量
ENV JAVA_TOOL_OPTS="-XX:+IgnoreUnrecognizedVMOptions \
			-XX:+UseContainerSupport \
			-XX:+IdleTuningCompactOnIdle \
			-XX:+IdleTuningGcOnIdle \
			-XX:+UseG1GC \
            -Xms500m \
            -XX:NewRatio=3 \
            -XX:MaxGCPauseMillis=300 \
            -XX:G1HeapRegionSize=32m \
            -XX:+UseStringDeduplication \
            -Xloggc:/var/log/gc.log \
            -XX:NumberOfGCLogFiles=10 \
            -XX:GCLogFileSize=20M
            -XX:+HeapDumpOnOutOfMemoryError \
            -XX:HeapDumpPath=/var/dump \
            -XX:+ExitOnOutOfMemoryError"


# 设置环境变量
ENV JAVA_HOME=/usr/local/openjdk-8
ENV PATH $JAVA_HOME/bin:$PATH

# 设置时区为东八区 (Asia/Shanghai)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -y libfreetype6 libfontconfig1

MAINTAINER gentlelions@163.com

3、示例代码

以dockeer-compose.yml配置为例:

services:
  rabbitmq:
    image: rabbitmq:3.11-management
    container_name: rabbitmq
    ports:
      - "5672:5672"  # RabbitMQ 默认端口
      - "15672:15672"  # RabbitMQ 管理界面
    volumes:
      - ./rabbitmq/data:/var/lib/rabbitmq:rw  # 持久化数据
      - ./rabbitmq/config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf  # 挂载配置文件
      - ./rabbitmq/log:/var/log/rabbitmq:rw  # 挂载日志文件
    environment:
      RABBITMQ_DEFAULT_USER: rabbitmq  # 默认用户名
      RABBITMQ_DEFAULT_PASS: rabbitmq  # 默认密码
      RABBITMQ_CONFIG_FILE: /etc/rabbitmq/rabbitmq.conf
    privileged: true
    restart: always
    networks:
      itx:
        ipv4_address: 172.20.10.130
  system:
    image: registry.cn-qingdao.aliyuncs.com/test/system:20240826-001
    container_name: system
    environment:
      - JAVA_OPTS= -Dspring.profiles.active=test -Dlogging.level.root=INFO
    ports:
      - 19201:9201
    privileged: true
    restart: always
    volumes:
      - /var/logs:/var/system/logs/:rw # 容器自身日志
      - /var/logs/system:/var/log/ # gc.log日志
      - /var/logs/system/dump:/var/dump # oom的dump文件
    logging: 
      driver: "json-file" 
      options: 
        max-size: "20m"
        max-file: "5"
    networks:
      itx:
        ipv4_address: 172.20.10.137
    
networks:
  itx:
    driver: bridge
    ipam:
      config:
      - subnet: 172.20.10.128/25

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员·猿先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值