婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Docker部署Spring-boot項目的示例代碼

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

熱門標簽:云會外呼系統(tǒng) 安陽ai電銷機器人軟件 涪陵商都400電話開通辦理 外呼系統(tǒng)不彈窗 智能電話機器人坐席 外呼系統(tǒng)的經營范圍 申請400電話價格多少 廈門營銷外呼系統(tǒng)平臺 柳州市機器人外呼系統(tǒng)報價

一、基礎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啟動類

@SpringBootApplication
public class DockerApplication {

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

測試API

@RestController
public 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 startup
2018-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

1.2 打包啟動

項目打包

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

$ 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 --version
Docker version 18.06.0-ce, build 0ffa825

$ docker --help
Usage: docker [OPTIONS] COMMAND
A 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>

創(chuàng)建 Dockerfile 文件

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

目錄機構如圖:

docker配置文件結構.png

編輯 Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD spring-docker.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

FROM 表示以Java8為基礎鏡像

VOLUME 表示掛載目錄

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

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

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 執(zhí)行:

$ mvn package docker:build

[INFO] Scanning for projects...

...

 ---> Running in e1f8aba72bdf
Removing intermediate container e1f8aba72bdf
 ---> 36a61c09f09a
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 36a61c09f09a
Successfully 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 images
REPOSITORY         TAG         IMAGE ID      CREATED       SIZE
springboot/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 startup
2018-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 ps
CONTAINER ID    IMAGE           COMMAND         CREATED       STATUS       PORTS                                  NAMES
94991c04be5d    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 94991c04be5d
94991c04be5d

刪除容器

$ docker rm 94991c04be5d
94991c04be5d

刪除鏡像

$ docker image rm springboot/spring-docker
Untagged: springboot/spring-docker:latest
Deleted: sha256:36a61c09f09ab88cfe5a05f564deb57498682f4a6f3ec01d2a8c4fdc80ac1e41
Deleted: sha256:3f9aef70be6d4d43c205454d8874f10bc2f7280f70eb88cd1f04937b7965dd27
Deleted: sha256:9a5800e93615bb4c5128bb36d31ec494327c01f1a9a768c1ff538badf76628b9
Deleted: sha256:d9c66f907448fa9e61fd5f9267d7fcf8e1f4b52d0a20466414f2f45777261284

六、其他配置功能

添加環(huán)境屬性

$ 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-alpine
VOLUME /tmp
ADD spring-docker.jar app.jar
ENV 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

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

標簽:綏化 蕪湖 撫順 巴中 晉城 孝感 福州 南充

巨人網絡通訊聲明:本文標題《Docker部署Spring-boot項目的示例代碼》,本文關鍵詞  Docker,部署,Spring-boot,項,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Docker部署Spring-boot項目的示例代碼》相關的同類信息!
  • 本頁收集關于Docker部署Spring-boot項目的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜伦理一区二区| av高清不卡在线| 日韩国产欧美一区二区三区| 日产国产欧美视频一区精品| 亚洲成人激情综合网| 国产一区二区不卡| 国产激情一区二区三区| 欧美中文字幕一二三区视频| 欧美一区二区三区的| 久久久久久久一区| 一区二区三区精密机械公司| 美国一区二区三区在线播放| 成人丝袜视频网| 欧美日本一区二区三区| 国产欧美一区二区三区网站| 亚洲图片欧美视频| 国产风韵犹存在线视精品| 欧美婷婷六月丁香综合色| 久久久综合网站| 亚洲福利国产精品| 成人av在线影院| 欧美mv日韩mv国产网站app| 亚洲乱码国产乱码精品精98午夜 | 精品国产亚洲在线| 亚洲三级免费观看| 国产在线精品一区二区夜色| 欧美在线观看18| 欧美日韩三级一区二区| 久久精品亚洲麻豆av一区二区| 国产精品久久久久久久蜜臀| 免费观看91视频大全| 色婷婷综合中文久久一本| 国产欧美日韩久久| 日本麻豆一区二区三区视频| 91麻豆免费看| 中文字幕一区二区三| 高清视频一区二区| 久久亚洲影视婷婷| 久久精品国产亚洲一区二区三区| 欧美在线制服丝袜| 亚洲嫩草精品久久| 成人精品免费看| 国产日韩精品一区二区三区| 黑人精品欧美一区二区蜜桃| 日韩午夜在线观看| 日韩av一二三| 欧美群妇大交群中文字幕| 一级日本不卡的影视| 91偷拍与自偷拍精品| 国产精品美女视频| 粉嫩av亚洲一区二区图片| 欧美一区二区三区在线观看| 亚洲成人黄色影院| 欧美精品自拍偷拍| 久久不见久久见中文字幕免费| 91精品国产黑色紧身裤美女| 亚洲成人你懂的| 中文一区二区完整视频在线观看| 国产成人自拍在线| 欧美第一区第二区| 麻豆91免费看| 成人黄色777网| 欧美电影免费观看高清完整版在| 亚洲综合成人在线| 欧美精品乱人伦久久久久久| 婷婷成人综合网| 欧美成人一区二区三区片免费 | 日本久久一区二区| 亚洲欧美日韩综合aⅴ视频| 色哟哟一区二区在线观看| 亚洲综合激情小说| 911国产精品| 久久99热狠狠色一区二区| 欧美精品一区二区三区在线播放 | 经典三级在线一区| 欧美电影在哪看比较好| 国产乱一区二区| 国产精品欧美精品| 色婷婷av一区二区三区之一色屋| 一区二区三区不卡视频| 91精品国产综合久久香蕉的特点| 激情综合色播五月| 中文字幕日韩一区| 欧美精品自拍偷拍动漫精品| 夫妻av一区二区| 亚洲福利电影网| 中文久久乱码一区二区| 欧美日韩久久久久久| 精品国产乱码久久久久久免费 | 91视频你懂的| 日日骚欧美日韩| 国产婷婷色一区二区三区在线| 色婷婷一区二区三区四区| 日韩激情在线观看| 日本一区二区高清| 精品视频在线视频| 国产99久久久国产精品潘金 | 人妖欧美一区二区| 亚洲图片欧美激情| 欧美在线999| 国产一区二区三区四区五区美女 | 91精品国产福利| 99精品欧美一区二区三区综合在线| 亚洲影视资源网| 亚洲国产精品传媒在线观看| 欧美日韩精品二区第二页| 国产精品香蕉一区二区三区| 丝袜美腿亚洲一区二区图片| 中文字幕视频一区| 精品久久久久av影院| 粗大黑人巨茎大战欧美成人| 轻轻草成人在线| 亚洲国产日韩综合久久精品| 国产精品国产馆在线真实露脸| 精品入口麻豆88视频| 在线精品视频一区二区| 国产剧情一区二区| 亚洲成年人网站在线观看| 国产日韩视频一区二区三区| 91老师片黄在线观看| 午夜电影一区二区三区| 国产日韩欧美精品在线| 欧美电视剧免费观看| 欧美亚洲一区二区在线| 岛国一区二区三区| 国产 日韩 欧美大片| 国产乱色国产精品免费视频| 久久99久久99精品免视看婷婷| 亚洲成av人片一区二区梦乃 | 欧美在线观看视频在线| 99热精品国产| 成人免费视频app| 激情综合五月天| 日本欧美肥老太交大片| 日本欧美大码aⅴ在线播放| 三级欧美在线一区| 日本视频在线一区| 日本午夜精品视频在线观看| 视频一区在线视频| 国产精品久久久久影院老司| 国产精品资源在线看| 国产裸体歌舞团一区二区| 精品亚洲成a人在线观看| 国产最新精品精品你懂的| 久久99九九99精品| 国产九色精品成人porny | 日韩精品一区二区三区在线观看 | 国产麻豆精品视频| 国产一区二区三区香蕉| 国产一区二区在线影院| 岛国av在线一区| 色网综合在线观看| 欧美日韩你懂的| 日韩欧美中文字幕公布| 日韩免费一区二区三区在线播放| 日韩精品一区二区三区三区免费 | 国产精品一二三区在线| 狠狠色狠狠色合久久伊人| 韩国成人在线视频| 成人sese在线| 在线观看国产91| 日韩女优毛片在线| 国产欧美视频一区二区| 亚洲欧美日韩中文字幕一区二区三区 | 国产成人精品免费一区二区| 国产不卡视频一区二区三区| 成人视屏免费看| 欧美日高清视频| 久久久777精品电影网影网| 国产精品久久福利| 亚洲成人av电影在线| 国产乱淫av一区二区三区| 色综合久久中文综合久久97| 欧美二区在线观看| 国产欧美一区二区三区鸳鸯浴| 国产精品美女久久久久久久久 | 床上的激情91.| 在线日韩av片| 久久亚洲精品国产精品紫薇| 久久久久久久久一| 亚洲精品视频观看| 日日欢夜夜爽一区| 国产成都精品91一区二区三| 色女孩综合影院| 久久这里只有精品6| 亚洲尤物视频在线| 国产激情精品久久久第一区二区 | 久久久久久久久久久久电影| 国产精品美日韩| 美女mm1313爽爽久久久蜜臀| www.欧美色图| 日韩欧美中文字幕制服| 天天操天天综合网| 欧美午夜片在线看| 日韩欧美电影在线| 亚洲一区二区三区自拍| 国产一区 二区| 欧美丰满少妇xxxxx高潮对白| 国产精品对白交换视频| 亚洲一区二区欧美日韩|