最新制作Docker镜像,用来编译OpenJDK11源码,腾讯T3面试官透露

总结

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!

某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

编写Dockerfile

Dockerfile内容如下,主要是安装必要的应用,另外关键的操作都有详细的注释,就不多说了:

#Docker image of source for OpenJDK

VERSION 0.0.1

Author: bolingcavalry

#基础镜像使用ubuntu:16.04

FROM ubuntu:16.04

#作者

MAINTAINER BolingCavalry zq2599@gmail.com

#定义boot jdk文件名

ENV BOOT_JDK_FILE_NAME jdk-10_linux-x64_bin_ri

#定义boot jdk安装目录

ENV BOOT_JDK_PATH /usr/lib/jvm

#定义boot jdk解压后的包名

ENV BOOT_JDK_PACKAGE_NAME jdk-10

#boot jdk的完全路径

ENV BOOT_JDK_HOME B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_PACKAGE_NAME

#boot jdk相关的环境变量

ENV JAVA_HOME $BOOT_JDK_HOME

ENV JRE_HOME $BOOT_JDK_HOME/jre

ENV CLASSPATH .: B O O T J D K H O M E / l i b : BOOT_JDK_HOME/lib: BOOTJDKHOME/lib:JRE_HOME/lib

ENV PATH= B O O T J D K H O M E / b i n : BOOT_JDK_HOME/bin: BOOTJDKHOME/bin:PATH

#创建文件夹用于安装boot jdk

RUN mkdir $BOOT_JDK_PATH

#将分割好的boot jdk安装文件逐个复制到镜像中,分多步完成,这样下载过程中出现问题时,不至于全部重新开始下载

COPY ./$BOOT_JDK_FILE_NAME-ac $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ag $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ak $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ao $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-as $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ad $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ah $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-al $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ap $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-aa $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ae $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ai $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-am $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-aq $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ab $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-af $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-aj $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-an $BOOT_JDK_PATH/

COPY ./$BOOT_JDK_FILE_NAME-ar $BOOT_JDK_PATH/

#还原成完整的文件,再解压开,将boot JDK配置信息写入环境变量,创建jre目录,把lib放进去

RUN cat B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_FILE_NAME-* > B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_FILE_NAME.tar.gz \

&& tar -zxvf B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_FILE_NAME.tar.gz -C $BOOT_JDK_PATH \

&& rm B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_FILE_NAME.tar.gz \

&& rm B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_FILE_NAME-* \

&& mkdir $BOOT_JDK_HOME/jre \

&& cp -r $BOOT_JDK_HOME/lib $BOOT_JDK_HOME/jre/

#备份旧的源

RUN mv /etc/apt/sources.list /etc/apt/sources.list.backup

#复制新的源

COPY ./sources.list /etc/apt/

#apt更新

RUN apt-get update \

&& apt-get install -y file autoconf zip libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfontconfig1-dev libasound2-dev

#命令行文件复制到工作目录

COPY ./cmd.sh /

#赋予可执行权限

RUN chmod a+x /cmd.sh

#启动执行

#CMD [“/bin/bash”, “/cmd.sh”]

ENTRYPOINT [“/cmd.sh”]

看到这里您一定会有疑问:这么多行COPY命令,为什么不用BOOT_JDK_FILE_NAME-*,这样岂不是一行命令就够了?

您可以在镜像build成功后,用docker history命令看看文件的layer数量,用多个COPY命令逐个执行,每个命令都对应一个小的layer,这样用户下载镜像时就是在下载多个小文件了;

cmd.sh文件

cmd.sh的内容如下,可见当容器启动后,先完成configure,再执行make命令进行编译:

#!/bin/bash

#修改所属人和所属群组

echo “start chown and chgrp”

chown -R root /src/jdk11 && chgrp -R root /src/jdk11

cd /src/jdk11

#配置

echo “start configure”

bash /src/jdk11/configure

#开始编译,如果有入参,就作为make的参数

echo “start make”

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • Kafka实战之削峰填谷

[外链图片转存中…(img-XOk0LJNj-1715663805418)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值