docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟
1.問題描述
項目使用的是springboot3.0,進(jìn)行docker打包的時候需要jdk17以上,索性我就使用jdk21了,但是進(jìn)行docker打包的時候,沒有找到j(luò)dk21的鏡像包,所以就想自己打包一個。
2.遇到問題
1.最初想要基于centOS去封裝一個鏡像,但是覺得這個包體會比較大,然后了解到了alpine這個基礎(chǔ)鏡像,打算使用這個作為基礎(chǔ)鏡像,最初Dockerfile如下:
FROM alpine:latest # 定義環(huán)境變量,以便后續(xù)使用 ENV JAVA_HOME /opt/jdk ENV PATH $PATH:$JAVA_HOME/bin # 安裝必要的工具和依賴,libc6-compat用于兼容glibc環(huán)境 RUN apk add --no-cache libc6-compat # 下載和解壓JDK 21 COPY jdk21 /opt/jdk/ # 驗證Java是否安裝成功 RUN java -version
2.鏡像打包成功了,但是java -version報錯了:
Unable to load jimage library libjimage.so
3.最后嘗試了直接使用apk add方法,最終的Dockerfile文件如下:
# 1.指定基礎(chǔ)鏡像 FROM alpine:latest # 2.添加說明等信息 LABEL name=bkp description="jdk21 base on alpine image" # 3.安裝jdk(這一步很慢,請耐心等待,我安裝大概花費了10分鐘) RUN apk add --no-cache --no-cache openjdk21 # 4.查看java版本 CMD ["java","-version"]
3.詳細(xì)步驟
1.安裝docker
2.拉取alpine
docker pull alpine:latest
3.進(jìn)入工作目錄
# 路徑看自己喜好就行 cd workspace/docker/jdk21
4.編輯Dockerfile
vim Dockerfile
添加以下內(nèi)容
# 1.指定基礎(chǔ)鏡像 FROM alpine:latest # 2.添加說明等信息 LABEL name=bkp description="jdk21 base on alpine image" # 3.安裝jdk(這一步很慢,請耐心等待,我安裝大概花費了10分鐘) RUN apk add --no-cache --no-cache openjdk21 # 4.查看java版本 CMD ["java","-version"]
5.構(gòu)建鏡像
注意:最后面有一個點 .
docker build -t java-alpine:21 .
6.等待構(gòu)建完成
我們就得到了一個基于alpine包含jdk21的docker鏡像
總結(jié)
到此這篇關(guān)于docker使用alpine構(gòu)建jdk21鏡像的文章就介紹到這了,更多相關(guān)docker alpine構(gòu)建jdk21鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JVM與容器化部署調(diào)優(yōu)過程(Docker+K8s)
這篇文章主要介紹了JVM與容器化部署調(diào)優(yōu)過程(Docker+K8s),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-07-07
Docker-Compose實現(xiàn)Mysql主從的示例代碼
本文主要介紹了Docker-Compose實現(xiàn)Mysql主從的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
使用 Docker 部署 GitLab 并持久化數(shù)據(jù)的實例步驟
本文將詳細(xì)介紹如何使用 Docker 部署 GitLab,并將數(shù)據(jù)(如倉庫、配置、日志等)持久化到主機磁盤,我們還將解決常見的端口沖突問題,并介紹如何從另一臺 GitLab 恢復(fù)數(shù)據(jù)到新的 GitLab 實例,感興趣的朋友一起看看吧2025-05-05
快速使用docker-compose部署clickhouse的教程
ClickHouse 的工作速度比傳統(tǒng)方法快 100-1000 倍。它適用于大數(shù)據(jù)、業(yè)務(wù)分析和時間序列數(shù)據(jù)。在這個小教程中,我將向您展示如何以最少的設(shè)置安裝 ClickHouse,感興趣的朋友一起看看吧2021-11-11
使用Docker部署DotNetBrowser應(yīng)用程序流程
這篇文章主要介紹了使用Docker部署DotNetBrowser應(yīng)用程序流程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-03-03
使用docker搭建一套開發(fā)環(huán)境全家桶的詳細(xì)教程
這篇文章主要介紹了使用docker搭建一套開發(fā)環(huán)境全家桶,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Docker部署Python應(yīng)用的問題與優(yōu)化實踐
作為一個經(jīng)常用Docker部署Python應(yīng)用的開發(fā)者,大家肯定遇到過改了一行代碼,重新打包鏡像,然后眼睜睜看著Docker重新下載幾百MB的依賴包,本文就來和大家講講如何優(yōu)化這一問題吧2025-05-05

