JDK 8 & tomcat 镜像准备

Docker hub 上没有现成的官方 Oracle JDK 8, 所以自己准备一个吧。

准备 dockerfile

首先去 oracle 官网手动下载 oracle jdk8 的目标镜像。

将下面的代码存储为 Dockerfile,并将 jdk-8u251-linux-x64.tar.gz 放入同一个目录。

FROM alpine:3.12

MAINTAINER Cloudbeer

ADD jdk-8u251-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_251
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

# 安装 glibc 并清理
RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.31-r0/glibc-2.31-r0.apk &&\
    apk add --allow-untrusted glibc-2.31-r0.apk &&\
    rm -rf /var/cache/apk/* &&\
    rm glibc-2.31-r0.apk

编译打包

编译的时候可以直接指定到私服

docker build -t 127.0.0.1:1080/base/jdk:8u251 .

测试镜像

运行一下镜像里面的命令并删除

docker run --rm 127.0.0.1:1080/base/jdk:8u251 java -version

docker run --rm 127.0.0.1:1080/base/jdk:8u251 javac -version

推送镜像

直接推送到线上私有库

docker push 127.0.0.1:1080/base/jdk:8u251

使用

在业务应用中 (springboot 类)可以直接使用,Dockerfile 中直接饮用基础镜像。

FROM 127.0.0.1:1080/base/jdk:8u251
# ...

tomcat 镜像

许多企业在虚拟机上运行 tomcat 也是修改过的,并进行了调优,并自己编写了 启动和 停止脚本。下面是一个 tomcat 打包的示例,将 tomcat 直接拷贝到镜像中。

FROM 127.0.0.1:1080/lktest/jdk:8u251

ADD tomcat /opt/tomcat
ENV CATALINA_HOME /opt/tomcat
RUN chmod +x /opt/tomcat/bin/*.sh

ADD esfreport.sh /usr/init/esfreport.sh
ADD run.sh /usr/init/run.sh
ADD killbash.sh /usr/init/killbash.sh

RUN chmod +x /usr/init/*.sh
EXPOSE 8080
ENTRYPOINT ["/usr/init/run.sh"]

需要注意的是:

alpine 版本中的 shell 不是 bash,而是 sh。所以之前使用 bash 编写的脚本或许无法运行。

要么修改成 sh 的脚本,要么安装一个 bash。

为了顺利运行原来的 bash,建议直接安装一个 bash。安装命令如下:

# RUN apk update && apk add bash   
# alpine 3.3 版本后使用下面的命令,可以让镜像小一点。
RUN apk add --no-cache bash
合智互联客户成功服务热线:400-1565-661

admin
admin管理员

上一篇:IDA-完整解析sig
下一篇:腾讯云-云监控产品全家桶介绍

留言评论

暂无留言