docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟
1.問(wèn)題描述
項(xiàng)目使用的是springboot3.0,進(jìn)行docker打包的時(shí)候需要jdk17以上,索性我就使用jdk21了,但是進(jìn)行docker打包的時(shí)候,沒(méi)有找到j(luò)dk21的鏡像包,所以就想自己打包一個(gè)。
2.遇到問(wèn)題
1.最初想要基于centOS去封裝一個(gè)鏡像,但是覺(jué)得這個(gè)包體會(huì)比較大,然后了解到了alpine這個(gè)基礎(chǔ)鏡像,打算使用這個(gè)作為基礎(chǔ)鏡像,最初Dockerfile如下:
FROM alpine:latest # 定義環(huán)境變量,以便后續(xù)使用 ENV JAVA_HOME /opt/jdk ENV PATH $PATH:$JAVA_HOME/bin # 安裝必要的工具和依賴(lài),libc6-compat用于兼容glibc環(huán)境 RUN apk add --no-cache libc6-compat # 下載和解壓JDK 21 COPY jdk21 /opt/jdk/ # 驗(yàn)證Java是否安裝成功 RUN java -version
2.鏡像打包成功了,但是java -version報(bào)錯(cuò)了:
Unable to load jimage library libjimage.so
3.最后嘗試了直接使用apk add方法,最終的Dockerfile文件如下:
# 1.指定基礎(chǔ)鏡像 FROM alpine:latest # 2.添加說(shuō)明等信息 LABEL name=bkp description="jdk21 base on alpine image" # 3.安裝jdk(這一步很慢,請(qǐng)耐心等待,我安裝大概花費(fèi)了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.添加說(shuō)明等信息 LABEL name=bkp description="jdk21 base on alpine image" # 3.安裝jdk(這一步很慢,請(qǐng)耐心等待,我安裝大概花費(fèi)了10分鐘) RUN apk add --no-cache --no-cache openjdk21 # 4.查看java版本 CMD ["java","-version"]
5.構(gòu)建鏡像
注意:最后面有一個(gè)點(diǎn) .
docker build -t java-alpine:21 .
6.等待構(gòu)建完成
我們就得到了一個(gè)基于alpine包含jdk21的docker鏡像
總結(jié)
到此這篇關(guān)于docker使用alpine構(gòu)建jdk21鏡像的文章就介紹到這了,更多相關(guān)docker alpine構(gòu)建jdk21鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于docker部署fastapi項(xiàng)目以及日志掛載方式
這篇文章主要介紹了關(guān)于docker部署fastapi項(xiàng)目以及日志掛載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連
在某些特殊需求下,我們想ssh直接遠(yuǎn)程連接docker 容器,本文主要介紹了Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08docker鏡像壓縮squash的實(shí)現(xiàn)
本文主要介紹了docker鏡像壓縮squash的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07docker啟動(dòng)報(bào)錯(cuò)問(wèn)題OCI runtime create failed: c
這篇文章主要介紹了docker啟動(dòng)報(bào)錯(cuò)問(wèn)題OCI runtime create failed: container_linux.go:380: starting container process,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08docker search 搜索鏡像的實(shí)現(xiàn)示例
本文主要介紹了docker search搜索鏡像的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02教你使用Portainer管理多臺(tái)Docker容器環(huán)境的方法
這篇文章主要介紹了Portainer管理多臺(tái)Docker容器環(huán)境,本文給大家介紹的非常詳細(xì),包括環(huán)境準(zhǔn)備及管理docker的詳細(xì)過(guò)程,需要的朋友可以參考下2021-11-11