基于Linux Alpine 制作 Java 8、11 Docker 镜像并支持中文

这篇具有很好参考价值的文章主要介绍了基于Linux Alpine 制作 Java 8、11 Docker 镜像并支持中文。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux Alpine

1、关于linux alpine 楼主就不多介绍了,在容器化背景下, alpine 非常适合做容器基础镜像 。
2、有兴趣的同学可以转至官网查看 https://www.alpinelinux.org

制作Java镜像

1、楼主这里展示了基于 JDK1.8 和 JDK 11 的镜像制作方式 , 如下为 Dockerfile 文件
2、楼主这里增加了 glibc 库, 主要是为了解决中文乱码及部分Java工程可能使用的依赖

FROM alpine:3.15
CMD ["/bin/sh"]
MAINTAINER 871364441@qq.com
# 创建工作目录
WORKDIR /root
# 修改软件包源地址(此处使用 清华大学的源地址)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
# 更新软件包
RUN apk update upgrade
RUN apk add --no-cache ca-certificates tzdata tree curl tini
# 安装 glibc 库,主要为了解决中文乱码, 但是有部分java工程可能会依赖. 比如: aws kinesis 等
COPY locale.md locale.md
COPY glibc-2.35-r0.apk glibc-2.35-r0.apk
COPY glibc-bin-2.35-r0.apk glibc-bin-2.35-r0.apk
COPY glibc-i18n-2.35-r0.apk glibc-i18n-2.35-r0.apk
COPY sgerrand.rsa.pub /etc/apk/keys/sgerrand.rsa.pub
RUN apk add glibc-2.35-r0.apk glibc-bin-2.35-r0.apk glibc-i18n-2.35-r0.apk
RUN cat locale.md | tr -d '\r' | xargs -i /usr/glibc-compat/bin/localedef -i {} -f UTF-8 {}.UTF-8 && \
rm -rf *.apk && \
rm -rf /var/cache/apk/* && \
rm -rf locale.md
# tzdata 是可以配置时区,这里默认使用上海时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
RUN { echo '#!/bin/sh'; echo 'set -e'; echo; echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; } > /usr/local/bin/docker-java-home
RUN chmod +x /usr/local/bin/docker-java-home
# 支持使用中文
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN.UTF-8


# 以下为安装jdk 11 的命令 , 目前alpine:3.15 里面软件包最新版本 jdk版本 11.0.15
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-11-openjdk/jre/bin:/usr/lib/java-11-openjdk/bin
RUN apk add --no-cache openjdk11 && [ "$JAVA_HOME" = "$(docker-java-home)" ]


# 以下为安装jdk 1.8 的命令 , 目前alpine:3.15 里面软件包最新版本 jdk版本 1.8.0_322
# ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
# ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
# RUN apk add --no-cache openjdk8 && [ "$JAVA_HOME" = "$(docker-java-home)" ]

CMD ["java","-version"]

关于 glibc 的几个文件和locale文件

1、glibc 文件 下载方式及地址 (楼主网络不稳定,所以提前下载好使用)

wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-bin-2.35-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-i18n-2.35-r0.apk
wget https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub

2、locale 文件及其 内容

1、创建文件 
touch locale.md

2、写入文件内容
en_US
zh_CN
zh_HK
zh_SG
zu_ZA

关于容器启动 Java 服务

1、启动Java服务时,在 dockerfile 末尾里面增加

ENTRYPOINT ["tini","java","-Dfile.encoding=utf-8","-jar","/demo.jar"]

2、切记一定要 增加 tini 命令,是为了容器启动后可以正常使用 jstack jmap 两个命令的

关于docker镜像

1、JDK 11 的镜像已经上传指docker官方镜像仓库, 欢迎下载: docker pull duxinglangzi/alpine-java11:latest
2、JDK 8 的镜像下载地址: docker pull duxinglangzi/alpine-java8:latest文章来源地址https://www.toymoban.com/news/detail-706176.html

到了这里,关于基于Linux Alpine 制作 Java 8、11 Docker 镜像并支持中文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于 Alpine 环境源码构建 alibaba-tengine(阿里巴巴)的 Docker 镜像

    Alpine Linux 是一款极其轻量级的 Linux 发行版,基于 busybox ,多被当做 Docker 镜像的底包(基础镜像),在使用容器时或多或少都会接触到此系统,本篇文章我们以该镜像构建 tengine-alpine 镜像。 说明:此处以 alpine 3.18.3 tengine 3.0.0 为实验进行容器镜像构建。 小巧: 基于 Musl li

    2024年02月11日
    浏览(38)
  • docker Alpine镜像介绍(基础镜像)

    https://hub.docker.com/_/alpine https://github.com/alpinejs/alpine Alpine镜像 是一个基于Alpine Linux发行版构建的Docker镜像。Alpine Linux是一个轻量级的Linux发行版,它的目标是提供一个安全、简单、高效的操作系统。Alpine Linux采用了musl libc和BusyBox来最小化系统的大小,并且使用了自己的包管理

    2024年02月13日
    浏览(32)
  • docker使用alpine构建jdk21镜像

            项目使用的是springboot3.0,进行docker打包的时候需要jdk17以上,索性我就使用jdk21了,但是进行docker打包的时候,没有找到jdk21的镜像包,所以就想自己打包一个。         1.最初想要基于centOS去封装一个镜像,但是觉得这个包体会比较大,然后了解到了alpine这个基

    2024年01月16日
    浏览(23)
  • docker基础3——制作镜像(基于容器)

    镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。 docker镜像含有启动容器所需要的文件系统及其内容,所以镜像是用于创建并启动容器。 docker镜像采用分层构建机制,最底层为bootfs,其上为rootfs。 bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完

    2024年02月07日
    浏览(33)
  • Docker制作Java8环境镜像

    这里介绍如何制作一个java8环境的镜像,用于运行java应用程序。 这里采用OpenJDK,不会涉及版本问题。 同样思源中文字体也是开源的,没有版权问题。 OpenJDK8:OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar.gz wget安装包:wget-1.14-18.el7_6.1.x86_64.rpm 思源中文字体:09_SourceHanSerifSC.zip 上面三个

    2024年02月10日
    浏览(25)
  • 【Linux|Docker】以CentOS 7为基础镜像制作一个目标镜像(Nginx)

    ==== 需要哪些东西? 1.nginx的安装脚本 install_nginx.sh 源码 https://nginx.org/download/nginx-1.23.3.tar.gz 2.Dockerfile 3.1 准备环境,新建目录 3.2 编写一个编译安装nginx的脚本 为了提高效率,编写一个脚本执行,一次性编译安装好! vim install_nginx.sh 脚本文件内容如下: 3.3 编写Dockerfile 编写

    2024年02月14日
    浏览(35)
  • java执行ffmpeg命名的Docker镜像制作

    今天来记录一下通过Dockerfile制作docker镜像的过程 我需要通过java服务调用ffmpeg去执行视频合并的功能,想把这个环境封装到docker镜像当中,方便以后迁移部署。 随便找一个路径创建一个Dockerfile文件 写入一下内容即可 上面的意思就是 在jdk8镜像的基础上执行一下安装ffmpeg的命

    2024年02月14日
    浏览(34)
  • 【开源电商网站】(2),使用docker-compose和dockerfile进行配置,设置自定义的镜像,安装插件,增加汉化包,支持中文界面汉化。

    相关内容: https://blog.csdn.net/freewebsys/category_12461196.html 原文地址: https://blog.csdn.net/freewebsys/article/details/133666433 包括以下运行的详细代码: https://gitee.com/study-demo-all/oscommerce2-study 视频教程: https://www.bilibili.com/video/BV1kB4y1Z7HS/?vd_source=4b290247452adda4e56d84b659b0c8a2 首先是镜像的选择

    2024年02月05日
    浏览(37)
  • docker基于已有容器和通过Dockerfile进行制作镜像配置介绍

    目录 一.制作镜像的两种方式 1.在已有容器中更新并提交这个镜像 2.使用Dockerfile来制作 二.基于容器制作镜像 1.格式 (1)主要格式 (2)可选参数 2.案例 基于容器创建镜像设置标签并进行验证是否可用 (1)运行容器并写入验证内容(改变容器存储层内容) (2)另起终端制

    2024年02月11日
    浏览(33)
  • 【使用debian镜像】docker的基础镜像很多,生产环境中使用建议还是不要使用centos和alpine的基础镜像了,直接使用debian的基础镜像即可。

    本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 未经博主允许不得转载。 博主CSDN地址是:https://blog.csdn.net/freewebsys 博主掘金地址是:https://juejin.cn/user/585379920479288 博主知乎地址是:https://www.zhihu.com/people/freewebsystem 为啥要使用debian镜像呢? 首先 centos的官网已

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包