我想为我的应用程序执行/开发环境设置一个基于 Alpine 的 Java 1.5 docker 映像(基于来自 docker hub 的 Alpine),但由于某些检查(df 命令未返回任何内容),安装程序无法运行。然后我尝试从 .bin 文件中提取映像并为提取的映像添加执行权限,它给了我类似 ELF... not found 的信息。我根据我下载的 JRE 安装程序版本仔细检查了架构,以确保它们相同。
我想知道人们如何将 JRE 7/8 安装到 Alpine?为什么不是 5?最重要的是,除了放弃它我还能做什么?
提前致谢。
答案1
Alpine 使用 musl libc,而 Oracle Java 二进制文件仅在 glibc 上运行。这意味着您不能直接将二进制文件与开箱即用的 Alpine 一起使用。vizzbuzz/base-java
通过安装 glibc 包解决了 musl libc 带来的复杂性。查看Dockerfile
以激发您自己的灵感,或者只是将该图像用于您的项目。
关于这个问题有一个非常有价值的讨论docker-alpine 问题 #11。
不管怎样,我喜欢 sillelien 为 Alpine 制作的基础镜像,因为这些镜像使用 S6 作为进程管理器,可以修复一些问题,比如记录日志和根据命令安全地关闭进程docker stop
。