SpringBoot3.x打包Docker容器的實現(xiàn)
更新時間:2024年04月30日 10:35:41 作者:程序員食堂
這篇文章主要介紹了SpringBoot3.x打包Docker容器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
Docker化Spring Boot應(yīng)用
創(chuàng)建文件夾 demo
mkdir demo cd demo
創(chuàng)建Dockerfile
# 兩個 openjdk 二選一 #FROM openjdk:17-jre-alpine FROM eclipse-temurin:17 MAINTAINER chengxuyuanshitang <chengxuyuanshitang@XX.com> RUN mkdir -p /workspace/java/demo COPY demo.jar /workspace/java/demo/demo.jar ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", " /workspace/java/demo/demo.jar"] CMD ["--spring.profiles.active=test"] EXPOSE 8122
- FROM:指定基礎(chǔ)鏡像,項目是使用jdk17開發(fā)的項目,所以我們指定的基礎(chǔ)鏡像為openjdk:17-jdk-alpine
- MAINTAINER:項目維護人員
- RUN:執(zhí)行命令,在根目錄下創(chuàng)建/workspace/java/demo目錄
- COPY:將宿主機當前目錄下的demo.jar文件拷貝到app目錄下,并重命名為demo.jar
- ENTRYPOINT:指定容器啟動程序及參數(shù)
- CMD: 提供的參數(shù)將會被附加到 ENTRYPOINT 命令之后,作為額外的參數(shù)傳遞給 java 命令。如果沒有 CMD 指令,或者在運行容器時沒有提供任何參數(shù),那么只有 ENTRYPOINT 定義的命令會被執(zhí)行。
- EXPOSE:指定運行時容器提供服務(wù)的端口
- -Djava.security.egd=file:/dev/./urandom : 這是一個系統(tǒng)屬性設(shè)置,-D 表示設(shè)置一個系統(tǒng)屬性。java.security.egd 是用于指定隨機數(shù)生成器的系統(tǒng)屬性。file:/dev/./urandom 指定了使用 /dev/urandom 作為隨機數(shù)生成器的源,這通常用于提高性能,因為 /dev/urandom 在生成隨機數(shù)時不會阻塞。
在demo夾下面放入demo.jar
demo.jar和Dockerfile在一個目錄下面
執(zhí)行鏡像構(gòu)建命令
docker build -t demo:v1 .

查看本地鏡像
docker images

運行容器
docker run -p 8899:8122 demo:v1

瀏覽器訪問
IP:8899/doc.html#/home

到此這篇關(guān)于SpringBoot3.x打包Docker容器的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot3.x打包Docker內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java LinkedHashMap 底層實現(xiàn)原理分析
LinkedHashMap繼承自HashMap實現(xiàn)了Map接口?;緦崿F(xiàn)同HashMap一樣,不同之處在于LinkedHashMap保證了迭代的有序性。其內(nèi)部維護了一個雙向鏈表,解決了 HashMap不能隨時保持遍歷順序和插入順序一致的問題。2021-05-05
Spring?Boot?多數(shù)據(jù)源處理事務(wù)的思路詳解
這篇文章主要介紹了Spring?Boot?多數(shù)據(jù)源如何處理事務(wù),本文單純就是技術(shù)探討,要從實際應(yīng)用中來說的話,我并不建議這樣去玩分布式事務(wù)、也不建議這樣去玩多數(shù)據(jù)源,畢竟分布式事務(wù)主要還是用在微服務(wù)場景下,對Spring?Boot?多數(shù)據(jù)源事務(wù)相關(guān)知識感興趣的朋友參考下本文2022-06-06

