制作jre基礎鏡像
alpine簡介
由于項目基于spring boot需要jre環境支撐,出于鏡像大小考慮,若采用unbuntu或者centos作為基礎鏡像,會很大,在需要傳輸的場景中非常的不方便。
所以這里采用alpine作為基礎鏡像,alpine是一個輕量級的linux系統,鏡像大小5M左右。
image
下載jre制作java項目運行環境
jdk大小200M左右
jdk大小70M+
#由于僅需要Java運行時,沒有編譯等需求,故這里選擇體積較小的jre
image
由于是源碼,需要解壓、配置環境變量,但當我們解壓后發現,解壓后的包大約200+M,之前的努力全白費了感覺!!!
沒關系我們刪除一些不需要的內容,將下載后的jre上傳至/root下,執行以下命令
mkdir -p /docker/jre
mv jre-8u171-linux-x64.tar.gz /docker/jre
cd /docker/jre
tar zxvf jre-8u171-linux-x64.tar.gz
mv jre1.8.0_171 jre
cd jre/
rm -rf ./lib/plugin.jar \
./lib/ext/jfxrt.jar \
./bin/javaws \
./lib/javaws.jar \
./lib/desktop \
./plugin \
./lib/deploy* \
./lib/*javafx* \
./lib/*jfx* \
./lib/amd64/libdecora_sse.so \
./lib/amd64/libprism_*.so \
./lib/amd64/libfxplugins.so \
./lib/amd64/libglass.so \
./lib/amd64/libgstreamer-lite.so \
./lib/amd64/libjavafx*.so \
./lib/amd64/libjfx*.so
#查看大小,107M
du -h /docker/jre
制作docker鏡像
cd /docker/jre
cat >> Dockerfile <<EOF
FROM docker.io/jeanblanchard/alpine-glibc
ADD jre /usr/local/
ENV JAVA_HOME /usr/local/jre
ENV PATH ${PATH}:${JAVA_HOME}/bin
CMD ["java", "-version"]
EOF
#build
docker build -t cloud/jre:v1 .
#查看鏡像,123M
docker images
image
#啟動測試
docker run cloud/jre:v1
image