將jar程序封裝為docker鏡像 shell腳本

將JAR程序封裝為Docker鏡像通常涉及編寫一個Dockerfile,然后使用docker build命令構建鏡像。然而,如果你想要通過一個shell腳本來自動化這個過程,你可以創建一個腳本,該腳本首先創建一個Dockerfile,然后使用docker build來構建鏡像。

以下是一個簡單的shell腳本示例,該腳本接受JAR文件的路徑和Docker鏡像的名稱作為參數,并創建一個Docker鏡像:

 
#!/bin/bash# 檢查參數數量
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <jar-file-path> <docker-image-name> <docker-tag>"
exit 1
fiJAR_PATH=$1
IMAGE_NAME=$2
TAG=$3# 創建Dockerfile
cat > Dockerfile <<EOF
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EOF# 構建Docker鏡像
docker build -t ${IMAGE_NAME}:${TAG} .# 刪除Dockerfile(可選)
rm Dockerfileecho "Docker image ${IMAGE_NAME}:${TAG} built successfully!"

這個腳本首先檢查是否有正確數量的參數。然后,它創建一個Dockerfile,該文件使用openjdk:8-jdk-alpine作為基礎鏡像,將JAR文件復制到鏡像中,并設置ENTRYPOINT來運行JAR文件。

然后,腳本使用docker build命令構建鏡像,最后刪除創建的Dockerfile(這是可選的,取決于你是否想保留它)。

要運行這個腳本,你可以保存它到一個文件中,例如build_docker_image.sh,然后給它執行權限:

 
chmod +x build_docker_image.sh

然后,你可以像這樣運行腳本:

 
./build_docker_image.sh /path/to/your/app.jar my-app-image 1.0

這將構建一個名為my-app-image,標簽為1.0的Docker鏡像,該鏡像包含你指定的JAR文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715865.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715865.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715865.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式驅動學習第一周——linux設備管理模型

前言 現在來聊點原理性的東西——linux設備管理模型 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程&#xff0c;未來預計四個月將高強度更新本專欄&#xff0c;喜歡的可以關注本博主并訂閱本專欄&#xff0c;一起討論一起學習。現在關注就是老粉啦&#xff01; 行文目錄…

編寫dockerfile掛載卷

編寫dockerfile文件 [rootwq docker-test-volume]# vim dockerfile1 [rootwq docker-test-volume]# cat dockerfile1 FROM centosVOLUME ["volume01","volume02"]CMD echo "------end------" CMD /bin/bash [rootwq docker-test-volume]#使用do…

leetcode:51.N皇后(復習)

題目理解&#xff1a;&#xff08;回溯算法&#xff09; 樹形結構——層數代表行數&#xff0c;遞歸的深度就是總行數。 代碼實現&#xff1a;

解釋Android中的Activity生命周期,以及在哪個生命周期方法中可以進行布局的初始化?

在Android中&#xff0c;Activity的生命周期是指Activity從創建到銷毀的整個過程&#xff0c;這個過程中會經歷一系列的回調方法。了解Activity的生命周期對于管理資源、處理用戶交互和確保應用的穩定性非常重要。下面是Activity生命周期的主要階段及其對應的回調方法&#xff…

手寫 Attention 迷你LLaMa2——LLM實戰

https://github.com/Yuezhengrong/Implement-Attention-TinyLLaMa-from-scratch 1. Attention 1.1 Attention 靈魂10問 你怎么理解Attention&#xff1f; Scaled Dot-Product Attention中的Scaled&#xff1a; 1 d k \frac{1}{\sqrt{d_k}} dk? ?1? 的目的是調節內積&…

分布式ID選型對比(4)

百度UID generator 一, 創建表: worker_node(在項目啟動時初始化生成workId) CREATE TABLE worker_node (ID bigint NOT NULL AUTO_INCREMENT COMMENT auto increment id,HOST_NAME varchar(64) NOT NULL COMMENT host name,PORT varchar(64) NOT NULL COMMENT port,TYPE int…

金屬3D打印新材料嶄露頭角,性能卓越引領行業新潮流

在3D打印模具制造領域&#xff0c;材料的選擇對最終產品的性能有著至關重要的影響。隨著技術的不斷進步&#xff0c;金屬3D打印材料正迅速發展&#xff0c;展現出強大的競爭力和創新潛力。其中&#xff0c;3D打印企業毅速推出的多款不銹鋼粉末材料&#xff0c;如EM191、EM191S、…

字符串函數 strncpy() 詳解

什么是 strncpy() 函數&#xff1f; strncpy() 函數是 C 語言中的一個標準庫函數&#xff0c;它的作用是從一個字符串中按照指定的長度復制字符到另一個字符串中。它的原型如下&#xff1a; char *strncpy(char *dest, const char *src, size_t n);其中&#xff0c;dest 是目…

VMware Workstation Pro 17 虛擬機軟件安裝教程

VMware軟件介紹 VMware Workstation是一款功能強大的桌面虛擬計算機軟件&#xff0c;提供用戶可在宿主機操作系統上同時運行不同的操作系統(虛擬化技術)&#xff0c;所運行的操作系統可方便的進行復制和移動&#xff0c;突破傳統架構的限制。本文將以VMware Workstation Pro 1…

使用lnmp環境部署laravel框架需要注意的點

1&#xff0c;上傳項目文件后&#xff0c;需要chmod -R 777 storage授予文件權限&#xff0c;不然會報錯file_put_contents(/): failed to open stream: Permission denied。 如果后面還是報錯沒有權限的話&#xff0c;就執行ps -ef |grep php查詢php運行用戶。然后執行chown …

2024真正有效的蘋果mac電腦清理工具CleanMyMac X

一、前言 對于Mac用戶來說&#xff0c;電腦卡頓、運行緩慢無疑是一件令人頭疼的事情。而市面上的清理軟件又五花八門&#xff0c;效果參差不齊&#xff0c;如何才能找到一款真正有效的清理工具呢&#xff1f;今天&#xff0c;我們為大家推薦一款實力派電腦清理軟件——CleanMy…

【雙指針】刪除有序數組中重復元素,雙指針原地修改數組

刪除有序數組中重復元素 鏈接 . - 力扣&#xff08;LeetCode&#xff09;. - 備戰技術面試&#xff1f;力扣提供海量技術面試資源&#xff0c;幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/remove-duplicates-from-sorted-array/…

宏定義中#與##的注意事項

1. #是字符串化操作符。它的作用是將宏參數轉換成字符串 2. ##是標記粘貼操作符。它的作用是將兩個標記連接起來形成一個新的標記 #define TEST1(a) #a #define TEST2(a) b##a/***********************************************************/ 舉例&#xff1a;TEST1(hello) 會…

python virtualenv創建虛擬環境

文章目錄 安裝virtualenv在當前目錄創建虛擬環境命令進入虛擬環境激活虛擬環境查看python版本退出虛擬環境 安裝virtualenv pip install virtualenv在當前目錄創建虛擬環境命令 python -m virtualenv venvPS E:\coding\bertopic> python -m virtualenv venv created virtu…

Linux:Nginx服務重寫功能

目錄 一、重寫功能 1.重寫功能作用 2.rewrite指令 if指令 return指令 set指令 break指令 3.rewrite標志 redirect標志 permanent標志 break標志 last標志 rewrite標志實驗 一、重寫功能 1.重寫功能作用 重寫功能(rewrite)用于實現URL的重寫&#xff0c;URL的重寫是非常有用…

LC打怪錄 283. moving zero

題目鏈接 力扣 class Solution:def moveZeroes(self, nums: List[int]) -> None:l0for r in range(len(nums)):if nums[r]:nums[l], nums[r] nums[r], nums[l]l 1return nums 方法一&#xff1a; 思路 雙指針 1. def moveZeroes(self, nums: List[int]) -> None: …

Stable Diffusion 3正式發布,旨在鞏固其在AI圖像領域相對于Sora和Gemini的領先地位

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

vue3 + vite 項目可以使用純Js開發嗎?

答案&#xff1a;可以 創建項目&#xff1a; 按照鏈接參考或者按官方&#xff1a; webstorm 創建vue3 vite 項目-CSDN博客 項目目錄 tsconfig.json 配置允許js allowJs指定是否編譯js文件&#xff0c;在任意文件當中,如果我們模塊使用js寫的&#xff0c;那么我們需要 將all…

地理空間分析15——Python在應急響應與地理空間分析中的創新應用

目錄 寫在開頭1.Python及其在地理空間分析中的應用地理空間數據處理庫地理空間數據可視化工具 2.應急響應中的Python應用實例2.1 災害風險評估2.2 實時數據分析與響應2.3資源優化分配 3 地震應急響應案例&#xff1a;利用Python進行數據分析3.1 背景介紹3.2 數據收集與處理3.3 …

鏈式插補 (MICE):彌合不完整數據分析的差距

導 讀 數據缺失可能會扭曲結果&#xff0c;降低統計功效&#xff0c;并且在某些情況下&#xff0c;導致估計有偏差&#xff0c;從而破壞從數據中得出的結論的可靠性。 處理缺失數據的傳統方法&#xff08;例如剔除或均值插補&#xff09;通常會引入自己的偏差或無法充分利用數…