成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

spring boot 配合maven打成可執(zhí)行jar,構(gòu)建鏡像部署到docker容器中

y1chuan / 3006人閱讀

摘要:本篇文章將介紹應(yīng)用如何打成包并將構(gòu)建為鏡像部署到中應(yīng)用打包需要配合打包將以下代碼放到應(yīng)用文件中執(zhí)行打打包命令命令執(zhí)行完成后在應(yīng)用目錄下會(huì)有打出來(lái)打包此包會(huì)包含應(yīng)用所有打依賴(lài)直接拷出這個(gè)包在命令行執(zhí)行應(yīng)用名就可以運(yùn)行了構(gòu)建鏡像

本篇文章將介紹springboot應(yīng)用如何打成jar包,并將jar構(gòu)建為docker鏡像部署到docker中
應(yīng)用打包

需要配合spring-boot-maven-plugin打包,將以下代碼放到應(yīng)用pom文件中

    
        org.springframework.boot
        spring-boot-maven-plugin
            
                
                    
                        repackage
                    
                
               
    

執(zhí)行maven打打包命令

mvn -DskipTests=true clean package

命令執(zhí)行完成后, 在應(yīng)用目錄/target/下會(huì)有打出來(lái)打jar包,

此jar包會(huì)包含應(yīng)用所有打依賴(lài), 直接拷出這個(gè)jar包, 在命令行執(zhí)行 java -jar 應(yīng)用名, 就可以運(yùn)行了

構(gòu)建鏡像

基礎(chǔ)鏡像需要有java運(yùn)行環(huán)境, 這里用 java:8 作為基礎(chǔ)鏡像
編寫(xiě)Dockerfile

#基礎(chǔ)鏡像:倉(cāng)庫(kù)是java,tag是8
FROM java:8
#將打包好的spring程序拷貝到容器中的指定位置
ADD target/lit-webstarter.jar lit-webstarter
#容器對(duì)外暴露8080端口
EXPOSE 8080
#容器啟動(dòng)后需要執(zhí)行的命令
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar lit-webstarter.jar"]

Dockerfile 放到應(yīng)用錄下,

命令行cd到應(yīng)用目錄下, 和Dockerfile同級(jí)目錄, 執(zhí)行構(gòu)建鏡像命令

docker build -t lit-web:latest-dev .

其中 lit-web 表示鏡像名稱(chēng), latest-dev 表示鏡像到tag, . 表示當(dāng)前目錄

構(gòu)建完成后, 執(zhí)行docker images 即可看到剛才構(gòu)建到鏡像

運(yùn)行

執(zhí)行命令

docker run --name lit-web -p 8080:8080 -d lit-web:latest-dev

其中 --name lit-web 指定容器別名, lit-web:latest-dev 是剛才構(gòu)建的鏡像

如果應(yīng)用鏈接到數(shù)據(jù)庫(kù)也是在docker容器中, 在本地開(kāi)發(fā)時(shí)可以使用loclahost 訪問(wèn)容器中到數(shù)據(jù)庫(kù), 但是當(dāng)應(yīng)用也部署到docker中時(shí), 使用localhost 就不能正常訪問(wèn)另一個(gè)容器當(dāng)數(shù)據(jù)庫(kù)了,
解決方法如下:
application.yml 文件中添加 docker的profile

spring:
  profiles: docker
c3p0:
  jdbcUrl: jdbc:mysql://${mysql-docker:mysql-server}:3306/lit
  driverClass: com.mysql.jdbc.Driver
  user: root
  password: 123456

其中mysql-docker 為環(huán)境變量, 在運(yùn)行容器時(shí)指定, 默認(rèn)為mysql-server作為訪問(wèn)數(shù)據(jù)庫(kù)容器的別名
然后在啟動(dòng)jar時(shí)指定激活的profile為docker, Dockerfile 修改為:

#基礎(chǔ)鏡像:倉(cāng)庫(kù)是java,tag是8
FROM java:8
#將打包好的spring程序拷貝到容器中的指定位置
ADD target/lit-webstarter.jar lit-webstarter.jar
#容器對(duì)外暴露8080端口
EXPOSE 8080
ENV JAVA_OPTS="-Dspring.profiles.active=docker"
#容器啟動(dòng)后需要執(zhí)行的命令
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar lit-webstarter.jar"]

在運(yùn)行時(shí)指定環(huán)境變量并指定訪問(wèn)數(shù)據(jù)庫(kù)容器的別名

docker run --name lit -p 8080:8080 --link mysql:mysql-server -e JAVA_OPTS="-Dspring.profiles.active=docker -Dmysql-docker=mysql-server" -d lit-web:latest-dev

其中--link mysql 是數(shù)據(jù)庫(kù)容器的別名, 不知道別名可以用容器Id,
mysql-server 是指定容器應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)容器時(shí)使用的別名, 要和應(yīng)用的運(yùn)行參數(shù)mysql-docker保持一致
-e JAVA_OPTS=指定Dockerfile的環(huán)境變量

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27216.html

相關(guān)文章

  • Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)

    摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...

    Donne 評(píng)論0 收藏0
  • Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)

    摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...

    rose 評(píng)論0 收藏0
  • 使用 Docker 部署 Spring Boot項(xiàng)目

    摘要:項(xiàng)目上傳將項(xiàng)目上傳到華為云服務(wù)器,沒(méi)啥好說(shuō)的。環(huán)境搭建建議在環(huán)境下安裝,環(huán)境搭建比較復(fù)雜且容易出錯(cuò),使用來(lái)安裝環(huán)境很方便。使用部署項(xiàng)目將項(xiàng)目復(fù)制到服務(wù)器中,進(jìn)入項(xiàng)目路徑下進(jìn)行打包測(cè)試。 項(xiàng)目搭建 Spring Boot 項(xiàng)目代碼 @RestController public class SpringBootDockerApplication { public static vo...

    venmos 評(píng)論0 收藏0
  • 最小化 Java 鏡像的常用技巧

    摘要:本文將介紹精簡(jiǎn)容器鏡像的必要性并以基于的應(yīng)用為例描述最小化容器鏡像的常用技巧。經(jīng)過(guò)這一優(yōu)化,最終鏡像的大小為。 背景 隨著容器技術(shù)的普及,越來(lái)越多的應(yīng)用被容器化。人們使用容器的頻率越來(lái)越高,但常常忽略一個(gè)基本但又非常重要的問(wèn)題 - 容器鏡像的體積。本文將介紹精簡(jiǎn)容器鏡像的必要性并以基于 spring boot 的 java 應(yīng)用為例描述最小化容器鏡像的常用技巧。 精簡(jiǎn)容器鏡像的必要性 ...

    MudOnTire 評(píng)論0 收藏0
  • 市長(zhǎng)信箱郵件查詢(xún)服務(wù): 將SpringBoot應(yīng)用部署Docker

    摘要:市長(zhǎng)信箱郵件查詢(xún)服務(wù)將應(yīng)用部署到在上一章我完成了將部署到的工作和都具有能快速啟動(dòng)的特性因此是一對(duì)用來(lái)部署微服務(wù)的黃金搭檔在計(jì)劃中基于的應(yīng)用也將部署到之上那我們就開(kāi)始行動(dòng)吧將部署到上需要執(zhí)行以下步驟保證打包后的可執(zhí)行能正常啟動(dòng)在應(yīng)用中編寫(xiě)鏡像 市長(zhǎng)信箱郵件查詢(xún)服務(wù): 將SpringBoot應(yīng)用部署到Docker 在上一章, 我完成了將ES部署到Docker的工作. SpringBoot和...

    SKYZACK 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<