亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

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

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

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

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

項目打包

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

$ 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>

創建 Dockerfile 文件

根據上面 pom.xml 文件配置 <dockerDirectory>src/main/docker</dockerDirectory> ,這里配置了docker配置文件的目錄,所以需要再 src/main 下面創建docker文件夾,同時創建 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啟動時間而添加的一個系統屬性。

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 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

六、其他配置功能

添加環境屬性

$ 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,項,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Docker部署Spring-boot項目的示例代碼》相關的同類信息!
  • 本頁收集關于Docker部署Spring-boot項目的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    国产网站麻豆精品视频| 高清一级毛片一本到免费观看| 精品视频免费观看| 国产精品自拍在线观看| 午夜欧美成人久久久久久| 精品久久久久久中文字幕一区| 国产亚洲精品aaa大片| 久草免费在线视频| 免费的黄色小视频| 午夜激情视频在线播放| 精品国产香蕉在线播出| 91麻豆精品国产高清在线| 97视频免费在线观看| 欧美爱色| 日韩一级精品视频在线观看| 中文字幕97| 成人a大片在线观看| 99色精品| 国产精品1024永久免费视频 | 99久久精品费精品国产一区二区| 国产综合成人观看在线| 九九九网站| 国产精品123| 99色吧| 精品视频在线观看免费| 午夜在线影院| 精品国产一区二区三区久久久蜜臀| 国产视频久久久久| 美女免费精品视频在线观看| 青青青草影院 | 亚欧视频在线| 精品久久久久久中文| 日本免费区| 国产视频网站在线观看| 韩国毛片 免费| 日韩一级精品视频在线观看| 精品久久久久久中文| 亚州视频一区二区| 国产麻豆精品免费视频| 精品视频免费在线| 美国一区二区三区| 日本免费看视频| 久久国产精品永久免费网站| 韩国三级香港三级日本三级| 黄色短视屏| 国产麻豆精品视频| 91麻豆精品国产综合久久久| 一级毛片视频播放| 欧美激情一区二区三区在线| 九九精品久久| 日本免费看视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩在线观看视频黄| 国产精品1024永久免费视频 | 亚洲天堂免费| 日本在线不卡免费视频一区| 国产网站免费在线观看| 亚洲天堂在线播放| 国产精品1024永久免费视频 | 在线观看导航| a级黄色毛片免费播放视频| 国产精品自拍亚洲| 二级特黄绝大片免费视频大片| 九九热精品免费观看| 久久精品免视看国产明星| 国产韩国精品一区二区三区| 一级女性大黄生活片免费| 国产激情一区二区三区| 91麻豆精品国产综合久久久| 四虎影视精品永久免费网站| 成人影院一区二区三区| 日韩男人天堂| 国产一区二区精品久| 国产高清视频免费观看| 国产成人精品影视| 国产成a人片在线观看视频| 国产a网| 国产原创中文字幕| 国产精品1024永久免费视频| 久草免费在线视频| 91麻豆精品国产自产在线观看一区 | 亚洲精品中文字幕久久久久久| 人人干人人插| 国产91素人搭讪系列天堂| 九九久久99| 国产成人欧美一区二区三区的| 天天色成人| 九九精品在线播放| 九九精品影院| 亚洲 国产精品 日韩| 国产麻豆精品免费视频| 久久精品欧美一区二区| 精品视频免费在线| 在线观看成人网 | 国产一区二区福利久久| 亚欧成人乱码一区二区| 成人影院一区二区三区| 国产国产人免费视频成69堂| 亚洲精品影院| 99久久精品国产麻豆| 美女免费精品视频在线观看| 黄色免费网站在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 麻豆网站在线免费观看| 色综合久久手机在线| 日韩免费片| 夜夜操网| 国产成人精品综合| 国产综合91天堂亚洲国产| 亚洲精品中文字幕久久久久久| 日韩一级黄色| 久久精品成人一区二区三区| 美女免费精品视频在线观看| 黄色福利片| 91麻豆精品国产高清在线| 国产视频一区二区在线观看| 欧美日本免费| 一级毛片视频播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产综合91天堂亚洲国产| 日韩专区亚洲综合久久| 一级片免费在线观看视频| 成人高清护士在线播放| 亚洲天堂在线播放| 国产麻豆精品视频| 欧美国产日韩一区二区三区| 精品视频免费观看| 久久国产一久久高清| 久久99青青久久99久久| 四虎影视库国产精品一区| 999久久66久6只有精品| 国产极品白嫩美女在线观看看 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天天色成人| 九九精品在线播放| 日韩中文字幕在线亚洲一区| 九九久久国产精品大片| 午夜欧美福利| 青草国产在线观看| 美女免费毛片| 亚洲女初尝黑人巨高清在线观看| 国产国语对白一级毛片| 亚洲第一视频在线播放| 天天色色网| 天天做日日干| 精品视频免费看| 九九热国产视频| 成人在激情在线视频| 免费一级片网站| 国产不卡高清在线观看视频| 深夜做爰性大片中文| 人人干人人插| 国产一区二区精品尤物| 午夜在线影院| 可以免费看污视频的网站| 久久成人性色生活片| 91麻豆精品国产片在线观看| 亚洲第一视频在线播放| 免费的黄色小视频| 韩国毛片免费| 久久久成人网| 国产成人精品综合| 97视频免费在线| 免费一级片网站| 黄视频网站在线免费观看| 尤物视频网站在线观看| 国产伦久视频免费观看视频| 日韩免费片| 日本在线www| 国产成人啪精品视频免费软件| 国产激情一区二区三区| 精品久久久久久中文| 国产视频一区二区在线观看| 国产不卡在线播放| 色综合久久天天综合观看| 亚洲精品中文字幕久久久久久| 免费国产一级特黄aa大片在线| 四虎影视久久久| 日日爽天天| 人人干人人插| 国产一区二区高清视频| 久久精品店| 亚洲精品影院| 成人免费观看男女羞羞视频| 麻豆系列 在线视频| 黄视频网站在线免费观看| 一本高清在线| 精品国产亚洲人成在线| 欧美日本国产| 精品在线免费播放| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美a级片视频| 亚洲精品影院久久久久久| 国产麻豆精品免费密入口| 九九精品影院| 日日爽天天| 日韩中文字幕一区二区不卡| 日韩欧美一二三区| 精品视频在线看| 免费国产在线观看|