亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Docker部署Spring-boot項目的示例代碼

2024-09-01 13:56:16
字體:
來源:轉載
供稿:網友

一、基礎Spring-boot快速啟動

 1.1 快速啟動 pom.xml加入如下依賴

<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.0.5.RELEASE</version>  </parent>  <properties>    <java.version>1.8</java.version>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>  </dependencies>  <build>    <finalName>spring-docker</finalName>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>    </plugins>  </build>

Spring-boot啟動類

@SpringBootApplicationpublic class DockerApplication {  public static void main(String[] args) {    SpringApplication.run(DockerApplication.class, args);  }}

測試API

@RestControllerpublic class DockerStarterApi {  @GetMapping("/api/docker/hello")  public String hello() {    return "hello docker";  }}

配置啟動配置文件 application.yml

server: port: 9090 # 為了展示效果, 這里改了默認端口8080

檢查Spring啟動

.  ____     _      __ _ _ /// / ___'_ __ _ _(_)_ __ __ _ / / / /( ( )/___ | '_ | '_| | '_ // _` | / / / / /// ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_/__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::    (v2.0.2.RELEASE)...2018-12-17 17:26:13.385 INFO 48740 --- [      main] o.s.j.e.a.AnnotationMBeanExporter    : Registering beans for JMX exposure on startup2018-12-17 17:26:13.448 INFO 48740 --- [      main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''2018-12-17 17:26:13.453 INFO 48740 --- [      main] pers.study.docker.DockerApplication   : Started DockerApplication in 1.982 seconds (JVM running for 2.602)

檢查API是否生效

$ curl -XGET 'http://localhost:9090/api/docker/hello'hello docker

瀏覽器檢查

http://localhost:9090/api/docker/hello

Docker,Spring-boot,代碼

1.2 打包啟動

項目打包

完成上面步驟之后,執行打包命令:

$ mvn clean -U -Dmaven.test.skip compile package

因為上面的pom文件里面定義了 finalName ,所以在這里會看到編譯打包之后 target 目錄下會生成 spring-docker.jar

<finalName>spring-docker</finalName>

測試運行

$ java -jar target/spring-docker.jar

不出意外(有問題留言~)運行結果同上并檢查API是否生效即可.

二、Docker快速安裝

接下來開始準備Docker

安裝

官網下載安裝

檢查安裝、查看幫助

$ docker --versionDocker version 18.06.0-ce, build 0ffa825$ docker --helpUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containers...

鏡像加速

中國官方鏡像加速

三、配置Spring-boot + Docker

pom.xml 添加docker plugin

<properties>    <docker.image.prefix>springboot</docker.image.prefix>  </properties>  <build>    <plugins>      <!-- Docker maven plugin -->      <plugin>        <groupId>com.spotify</groupId>        <artifactId>docker-maven-plugin</artifactId>        <version>1.0.0</version>        <configuration>          <imageName>${docker.image.prefix}/${project.build.finalName}</imageName>          <dockerDirectory>src/main/docker</dockerDirectory>          <resources>            <resource>              <targetPath>/</targetPath>              <directory>${project.build.directory}</directory>              <include>${project.build.finalName}.jar</include>            </resource>          </resources>        </configuration>      </plugin>    </plugins>  </build>

創建 Dockerfile 文件

根據上面 pom.xml 文件配置 <dockerDirectory>src/main/docker</dockerDirectory> ,這里配置了docker配置文件的目錄,所以需要再 src/main 下面創建docker文件夾,同時創建 Dockerfile 文件。

目錄機構如圖:

Docker,Spring-boot,代碼

docker配置文件結構.png

編輯 Dockerfile

FROM openjdk:8-jdk-alpineVOLUME /tmpADD spring-docker.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

FROM 表示以Java8為基礎鏡像

VOLUME 表示掛載目錄

ADD 拷貝打包文件并重命名為 app.jar

ENTRYPOINT 根據下面的官方文檔解釋大致是為了縮短tomcat啟動時間而添加的一個系統屬性。

We added a VOLUME pointing to /tmp because that is where a Spring Boot application creates working directories for Tomcat by default. The effect is to create a temporary file on your host under /var/lib/docker and link it to the container under /tmp . This step is optional for the simple app that we wrote here but can be necessary for other Spring Boot applications if they need to actually write in the filesystem.

To reduce Tomcat startup time we added a system property pointing to "/dev/urandom" as a source of entropy. This is not necessary with more recent versions of Spring Boot, if you use the "standard" version of Tomcat (or any other web server).

配置完成!

四、Docker啟動Spring-boot

進入 module 執行:

$ mvn package docker:build[INFO] Scanning for projects...... ---> Running in e1f8aba72bdfRemoving intermediate container e1f8aba72bdf ---> 36a61c09f09aProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}Successfully built 36a61c09f09aSuccessfully tagged springboot/spring-docker:latest[INFO] Built springboot/spring-docker[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 6.367 s[INFO] Finished at: 2018-12-17T20:48:21+08:00[INFO] ------------------------------------------------------------------------

查看鏡像

$ docker imagesREPOSITORY         TAG         IMAGE ID      CREATED       SIZEspringboot/spring-docker  latest       36a61c09f09a    2 minutes ago    123MB

運行鏡像

$ docker run -p 9090:9090 -t springboot/spring-docker .  ____     _      __ _ _ /// / ___'_ __ _ _(_)_ __ __ _ / / / /( ( )/___ | '_ | '_| | '_ // _` | / / / / /// ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_/__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::    (v2.0.2.RELEASE)2018-12-17 12:53:21.502 INFO 1 --- [      main] pers.study.docker.DockerApplication   : Starting DockerApplication v1.0-SNAPSHOT on 94991c04be5d with PID 1 (/app.jar started by root in /)2018-12-17 12:53:21.509 INFO 1 --- [      main] pers.study.docker.DockerApplication   : No active profile set, falling back to default profiles: default···2018-12-17 12:53:25.255 INFO 1 --- [      main] o.s.j.e.a.AnnotationMBeanExporter    : Registering beans for JMX exposure on startup2018-12-17 12:53:25.337 INFO 1 --- [      main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''2018-12-17 12:53:25.353 INFO 1 --- [      main] pers.study.docker.DockerApplication   : Started DockerApplication in 4.485 seconds (JVM running for 5.346)

查看容器

$ docker psCONTAINER ID    IMAGE           COMMAND         CREATED       STATUS       PORTS                                  NAMES94991c04be5d    springboot/spring-docker  "java -Djava.securit…"  53 seconds ago   Up 52 seconds    0.0.0.0:9090->9090/tcp                          quizzical_bhabha

驗證啟動,訪問API

$ curl -XGET 'http://localhost:9090/api/docker/hello'hello docker

至此Docker部署spring-boot搭建完成。

五、移除鏡像

 停止容器

$ docker stop 94991c04be5d94991c04be5d

刪除容器

$ docker rm 94991c04be5d94991c04be5d

刪除鏡像

$ docker image rm springboot/spring-dockerUntagged: springboot/spring-docker:latestDeleted: sha256:36a61c09f09ab88cfe5a05f564deb57498682f4a6f3ec01d2a8c4fdc80ac1e41Deleted: sha256:3f9aef70be6d4d43c205454d8874f10bc2f7280f70eb88cd1f04937b7965dd27Deleted: sha256:9a5800e93615bb4c5128bb36d31ec494327c01f1a9a768c1ff538badf76628b9Deleted: sha256:d9c66f907448fa9e61fd5f9267d7fcf8e1f4b52d0a20466414f2f45777261284

六、其他配置功能

添加環境屬性

$ docker run -e "SPRING_PROFILES_ACTIVE=prod" -p 9090:9090 -t springbooot/spring-docker

后臺啟動運行

$ docker run -p 9090:9090 -d springboot/spring-docker

開啟容器Debug 修改 Dockerfile

FROM openjdk:8-jdk-alpineVOLUME /tmpADD spring-docker.jar app.jarENV JAVA_OPTS ''CMD java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar app.jar

docker run

 

復制代碼代碼如下:
$ docker run -e "JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" -p 9090:9090 -p 5005:5005 -t springboot/spring-docker

 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲精品毛片网站| 91人人爽人人爽人人精88v| 国产精欧美一区二区三区| 国产自产女人91一区在线观看| 欧美亚洲日本黄色| 国产一区二区黄| 国产亚洲精品久久| 日韩欧美aⅴ综合网站发布| 美女国内精品自产拍在线播放| 国产一区二区三区在线视频| 一本色道久久88亚洲综合88| 最新亚洲国产精品| 欧美色道久久88综合亚洲精品| 日韩av中文在线| 亚洲精品一区二区在线| 亚洲国产成人精品久久久国产成人一区| 精品视频在线播放免| 川上优av一区二区线观看| 色一情一乱一区二区| 国产精品久久久久久久久久东京| 性欧美xxxx视频在线观看| 庆余年2免费日韩剧观看大牛| 98精品国产自产在线观看| 欧美国产精品va在线观看| 欧美怡红院视频一区二区三区| 欧美黄色成人网| 久久精品国亚洲| 91精品国产色综合久久不卡98口| 国产成人精品在线| 九九热这里只有在线精品视| 在线视频免费一区二区| 日韩av免费一区| 亚洲国产精彩中文乱码av| 91九色精品视频| 欧美性xxxxxxx| 欧美性生活大片免费观看网址| 欧美性猛交xxxx免费看漫画| 136fldh精品导航福利| 国产日韩欧美日韩| 青青草99啪国产免费| 欧美视频免费在线观看| 亚洲第一福利网站| 国产一区在线播放| 2019中文字幕在线| 欧美一区二区色| 欧美性xxxxx极品娇小| 国产亚洲欧洲在线| 国产一区二区三区欧美| yw.139尤物在线精品视频| 国产欧美日韩免费| 日本久久久a级免费| 久久亚洲一区二区三区四区五区高| 亚洲人成电影在线观看天堂色| 久久视频免费在线播放| 久久影院免费观看| 欧美激情在线有限公司| 国产日韩欧美综合| 成人www视频在线观看| 久久久久久久久中文字幕| 在线播放日韩专区| 国产日韩欧美日韩| 亚洲一品av免费观看| 毛片精品免费在线观看| 亚洲春色另类小说| 亚洲毛片在线观看| 亚洲人成网7777777国产| 91美女片黄在线观看游戏| 九九热这里只有精品6| y97精品国产97久久久久久| 亚洲精品suv精品一区二区| 国产成人午夜视频网址| 97国产精品人人爽人人做| 亚洲精品国产精品国自产在线| 奇米影视亚洲狠狠色| 成人国产精品一区二区| 热久久免费视频精品| 另类美女黄大片| 性欧美办公室18xxxxhd| 久久精品视频免费播放| 亚洲欧美制服中文字幕| 欧美老少配视频| 欧洲日本亚洲国产区| 欧美亚洲一级片| 亚洲欧美日韩一区在线| 91国产中文字幕| 国产在线精品自拍| 国产成人精品视| 成人久久久久久久| 国产精品美女主播| 欧美插天视频在线播放| 欧美特级www| 九九热精品视频国产| 久久久噜噜噜久久久| 色av中文字幕一区| 精品毛片网大全| 国产精品一区二区电影| 81精品国产乱码久久久久久| 亚洲第一视频在线观看| 欧美在线日韩在线| 精品国产91乱高清在线观看| 亚洲电影免费观看高清完整版在线| 日韩欧亚中文在线| 中文字幕日韩有码| 欧美日韩一区二区精品| 久久99久久99精品中文字幕| 亚洲级视频在线观看免费1级| 91精品国产综合久久香蕉的用户体验| 亚洲一区二区三| 久久久久一本一区二区青青蜜月| 亚洲九九九在线观看| 欧美成人一二三| 91成品人片a无限观看| 成人高h视频在线| 成人免费视频97| 国产欧美欧洲在线观看| 国产性猛交xxxx免费看久久| 最近2019中文字幕第三页视频| 欧美性生交xxxxx久久久| 亚洲国产第一页| 91精品久久久久久久久| 欧美老少做受xxxx高潮| 国产成人综合av| 奇米一区二区三区四区久久| 成人在线中文字幕| 国产精品成av人在线视午夜片| 欧美日韩免费在线观看| 欧美有码在线观看视频| 国产香蕉精品视频一区二区三区| 日韩中文字幕视频在线| 久久久之久亚州精品露出| 欧美日韩综合视频网址| 欧美综合激情网| 亚洲欧洲黄色网| 国产欧美精品久久久| 色噜噜狠狠狠综合曰曰曰| 97在线免费观看| 亚洲欧美国产视频| 欧美午夜www高清视频| 不卡中文字幕av| 欧美另类69精品久久久久9999| 亚洲高清免费观看高清完整版| 久久精品成人一区二区三区| 丝袜美腿亚洲一区二区| 韩国视频理论视频久久| 精品久久国产精品| 国产精品成人一区二区三区吃奶| 日韩成人在线网站| 中文字幕欧美日韩精品| 青青青国产精品一区二区| 久久亚洲精品成人| 亚洲成人激情小说| 欧美极品在线视频| 午夜精品久久久久久久久久久久久| 欧美成人亚洲成人日韩成人| 91成人在线播放| 国产69久久精品成人看| 美女黄色丝袜一区| 国产一区二区黄| 深夜福利日韩在线看| 欧美壮男野外gaytube| 国产成人精品久久久| 91精品国产乱码久久久久久蜜臀| 久久91亚洲人成电影网站| 成人伊人精品色xxxx视频|