Dockerfile使用 alpine 基础镜像制作jdk运行环境

#1.指定基础镜像,并且必须是第一条指令

FROM alpine:latest


#2.指明该镜像的作者和其电子邮件

MAINTAINER ChenYao "1103613624@qq.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录

WORKDIR /xiaoye/jdk

#4.将一些安装包复制到镜像中,语法:ADD/COPY <src>... <dest>

## ADD与COPY的区别:ADD复制并解压,COPY仅复制

ADD jdk-8u221-linux-x64.tar.gz /xiaoye/jdk/

## glibc安装包如果从网络下载速度实在是太慢了,先提前下载复制到镜像中

COPY glibc-2.29-r0.apk /xiaoye/jdk/

COPY glibc-bin-2.29-r0.apk /xiaoye/jdk/

COPY glibc-i18n-2.29-r0.apk /xiaoye/jdk/

#5.更新Alpine的软件源为阿里云,因为从默认官源拉取实在太慢了

RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && \

    echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories

RUN apk update && apk upgrade

#6.运行指定的命令

## Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get,

## 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker

## wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget

## ca-certificates证书服务,是安装glibc前置依赖

RUN apk --no-cache add ca-certificates wget \

    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \

    && apk add glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk \

    && rm -rf /var/cache/apk/* glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk

#7.配置环境变量

ENV JAVA_HOME=/xiaoye/jdk/jdk1.8.0_221

ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令

#CMD ["java","-version"]
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Alpine Linux 是一种轻量级的 Linux 发行版,以其小型、安全和高效的特性而知名。要制作一个包含 JDK 21 的 Alpine 镜像,你需要按照以下步骤操作: 1. **基础镜像选择**: 使用 `alpine` 基础镜像作为起点,因为它的体积小且适合构建最小化镜像。你可以使用官方的 `alpine:latest` 或者指定特定版本,如 `alpine:3.14`。 2. **下载 JDK**: 使用 `apk add` 或 `wget` 下载 JDK 21 的二进制文件。你可以从 Oracle 或 Adoptium(以前的 OpenJDK)官方网站下载最新版本的 JDK,然后复制到镜像中。 3. **解压并配置**: 将下载的JDK压缩包解压到镜像中的一个合适的目录,例如 `/opt` 或 `/usr/lib/jvm`。记得设置必要的权限以便后续使用。 4. **环境变量设置**: 添加环境变量 `JAVA_HOME` 指向JDK的安装路径,这样系统可以方便地找到Java。 5. **添加启动脚本**: 创建一个启动脚本(比如 `/usr/bin/java`),使用户可以通过命令行运行 `java` 或 `javac`。 6. **清理不必要的文件**: 删除下载的JDK安装包以减小程序大小。 7. **运行时权限**: 如果你的镜像需要在容器中运行,确保给予必要的执行权限。 8. **制作镜像**: 使用 `docker build` 命令创建一个新的Docker镜像,指定基础镜像和上述操作的结果。 **相关问题--:** 1. 如何确保在镜像JDK的依赖项是最新的? 2. 在制作镜像时,如何处理JDK更新的问题? 3. 如何在Dockerfile中编写命令来添加启动脚本并设置环境变量?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值