国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

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

2024-09-01 13:56:16
字體:
來源:轉載
供稿:網(wǎ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啟動類

@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 打包啟動

項目打包

完成上面步驟之后,執(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

安裝

官網(wǎng)下載安裝

檢查安裝、查看幫助

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

創(chuàng)建 Dockerfile 文件

根據(jù)上面 pom.xml 文件配置 <dockerDirectory>src/main/docker</dockerDirectory> ,這里配置了docker配置文件的目錄,所以需要再 src/main 下面創(chuàng)建docker文件夾,同時創(chuàng)建 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 根據(jù)下面的官方文檔解釋大致是為了縮短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 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

六、其他配置功能

添加環(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-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武林網(wǎng)。


注:相關教程知識閱讀請移步到服務器教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 青州市| 林甸县| 斗六市| 太仆寺旗| 崇左市| 嘉善县| 承德市| 天长市| 厦门市| 保康县| 南部县| 当涂县| 双江| 盐山县| 偏关县| 绍兴县| 新乐市| 永康市| 调兵山市| 阿合奇县| 祁连县| 德江县| 闽侯县| 绵竹市| 通化县| 香格里拉县| 获嘉县| 荥经县| 沽源县| 南靖县| 曲阜市| 加查县| 黄平县| 彰化市| 阿图什市| 松江区| 鞍山市| 包头市| 景洪市| 漳浦县| 汶上县|