自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

當Docker遇上IDEA ,生產(chǎn)力徹底炸裂了

新聞 前端
Idea是Java開發(fā)利器,SpringBoot是Java生態(tài)中最流行的微服務框架,docker是時下最火的容器技術,那么它們結(jié)合在一起會產(chǎn)生什么化學反應呢?

 [[411168]]

Idea是Java開發(fā)利器,SpringBoot是Java生態(tài)中最流行的微服務框架,docker是時下最火的容器技術,那么它們結(jié)合在一起會產(chǎn)生什么化學反應呢?

一、開發(fā)前準備

1.Docker的安裝可以參考https://docs.docker.com/install/

2.配置docker遠程連接端口

  1. vi /usr/lib/systemd/system/docker.service 

找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下圖所示:

3.重啟docker

  1. systemctl daemon-reload 
  2.  
  3. systemctl start docker 

4.開放端口

  1. firewall-cmd --zone=public --add-port=2375/tcp --permanent 

5.Idea安裝插件,重啟

6.連接遠程docker

(1) 編輯配置

(2) 填遠程docker地址

(3) 連接成功,會列出遠程docker容器和鏡像

二、新建項目

1.創(chuàng)建springboot項目

項目結(jié)構圖:

(1) 配置pom文件

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2.  
  3. <project xmlns="http://maven.apache.org/POM/4.0.0" 
  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  6.  
  7. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  8.  
  9. <modelVersion>4.0.0</modelVersion> 
  10.  
  11. <groupId>docker-demo</groupId> 
  12.  
  13. <artifactId>com.demo</artifactId> 
  14.  
  15. <version>1.0-SNAPSHOT</version> 
  16.  
  17. <parent> 
  18.  
  19. <groupId>org.springframework.boot</groupId> 
  20.  
  21. <artifactId>spring-boot-starter-parent</artifactId> 
  22.  
  23. <version>2.0.2.RELEASE</version> 
  24.  
  25. <relativePath /> 
  26.  
  27. </parent> 
  28.  
  29. <properties> 
  30.  
  31. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  32.  
  33. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
  34.  
  35. <docker.image.prefix>com.demo</docker.image.prefix> 
  36.  
  37. <java.version>1.8</java.version> 
  38.  
  39. </properties> 
  40.  
  41. <build> 
  42.  
  43. <plugins> 
  44.  
  45. <plugin> 
  46.  
  47. <groupId>org.springframework.boot</groupId> 
  48.  
  49. <artifactId>spring-boot-maven-plugin</artifactId> 
  50.  
  51. </plugin> 
  52.  
  53. <plugin> 
  54.  
  55. <groupId>com.spotify</groupId> 
  56.  
  57. <artifactId>docker-maven-plugin</artifactId> 
  58.  
  59. <version>1.0.0</version> 
  60.  
  61. <configuration> 
  62.  
  63. <dockerDirectory>src/main/docker</dockerDirectory> 
  64.  
  65. <resources> 
  66.  
  67. <resource> 
  68.  
  69. <targetPath>/</targetPath> 
  70.  
  71. <directory>${project.build.directory}</directory> 
  72.  
  73. <include>${project.build.finalName}.jar</include> 
  74.  
  75. </resource> 
  76.  
  77. </resources> 
  78.  
  79. </configuration> 
  80.  
  81. </plugin> 
  82.  
  83. <plugin> 
  84.  
  85. <artifactId>maven-antrun-plugin</artifactId> 
  86.  
  87. <executions> 
  88.  
  89. <execution> 
  90.  
  91. <phase>package</phase> 
  92.  
  93. <configuration> 
  94.  
  95. <tasks> 
  96.  
  97. <copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy> 
  98.  
  99. </tasks> 
  100.  
  101. </configuration> 
  102.  
  103. <goals> 
  104.  
  105. <goal>run</goal> 
  106.  
  107. </goals> 
  108.  
  109. </execution> 
  110.  
  111. </executions> 
  112.  
  113. </plugin> 
  114.  
  115. </plugins> 
  116.  
  117. </build> 
  118.  
  119. <dependencies> 
  120.  
  121. <dependency> 
  122.  
  123. <groupId>org.springframework.boot</groupId> 
  124.  
  125. <artifactId>spring-boot-starter-web</artifactId> 
  126.  
  127. </dependency> 
  128.  
  129. <dependency> 
  130.  
  131. <groupId>org.springframework.boot</groupId> 
  132.  
  133. <artifactId>spring-boot-starter-test</artifactId> 
  134.  
  135. <scope>test</scope> 
  136.  
  137. </dependency> 
  138.  
  139. <dependency> 
  140.  
  141. <groupId>log4j</groupId> 
  142.  
  143. <artifactId>log4j</artifactId> 
  144.  
  145. <version>1.2.17</version> 
  146.  
  147. </dependency> 
  148.  
  149. </dependencies> 
  150.  
  151. </project> 

(2) 在src/main目錄下創(chuàng)建docker目錄,并創(chuàng)建Dockerfile文件

  1. FROM openjdk:8-jdk-alpine 
  2.  
  3. ADD *.jar app.jar 
  4.  
  5. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"

(3) 在resource目錄下創(chuàng)建application.properties文件

  1. logging.config=classpath:logback.xml 
  2.  
  3. logging.path=/home/developer/app/logs/ 
  4.  
  5. server.port=8990 

(4) 創(chuàng)建DockerApplication文件

  1. @SpringBootApplication 
  2.  
  3. public class DockerApplication { 
  4.  
  5. public static void main(String[] args) { 
  6.  
  7. SpringApplication.run(DockerApplication.class, args); 
  8.  
  9.  

(5) 創(chuàng)建DockerController文件

  1. @RestController 
  2.  
  3. public class DockerController { 
  4.  
  5. static Log log = LogFactory.getLog(DockerController.class); 
  6.  
  7. @RequestMapping("/"
  8.  
  9. public String index() { 
  10.  
  11. log.info("Hello Docker!"); 
  12.  
  13. return "Hello Docker!"
  14.  
  15.  

(6) 增加配置

命令解釋

  1. Image tag : 指定鏡像名稱和tag,鏡像名稱為 docker-demo,tag為1.1 
  2.  
  3. Bind ports : 綁定宿主機端口到容器內(nèi)部端口。格式為[宿主機端口]:[容器內(nèi)部端口] 
  4.  
  5. Bind mounts : 將宿主機目錄掛到到容器內(nèi)部目錄中。格式為[宿主機目錄]:[容器內(nèi)部目錄]。這個springboot項目會將日志打印在容器 
  6.  
  7. /home/developer/app/logs/ 目錄下,將宿主機目錄掛載到容器內(nèi)部目錄后,那么日志就會持久化容器外部的宿主機目錄中。 

(7) Maven打包

(8) 運行

先pull基礎鏡像,然后再打包鏡像,并將鏡像部署到遠程docker運行

這里我們可以看到鏡像名稱為docker-demo:1.1,docker容器為docker-server

(9) 運行成功

(10) 瀏覽器訪問

(11) 日志查看

自此通過idea 部署springboot項目到docker成功!難以想象,部署一個Javaweb項目竟然如此簡單方便!

 

責任編輯:張燕妮 來源: 民工哥技術之路
相關推薦

2022-03-14 15:07:28

DockerJavaIdea

2022-09-13 13:02:33

VSCodeIDEA

2012-08-27 13:30:21

BYOD

2020-12-07 06:22:05

MyBatisPlus開發(fā)MP

2016-07-14 14:12:11

華為

2024-05-21 00:00:00

2023-02-13 08:34:26

Linux鍵盤快捷鍵

2019-12-23 15:28:47

人工智能AI生產(chǎn)力

2020-10-28 10:25:11

云端云計算云遷移

2023-04-06 09:53:21

Harbor企業(yè)級服務

2024-04-01 14:24:05

數(shù)字信任人工智能

2023-02-02 15:10:33

自動化RPA

2022-01-10 10:45:16

大數(shù)據(jù)大數(shù)據(jù)動向數(shù)據(jù)技術

2013-10-10 09:42:33

惠普低碳經(jīng)濟新型生產(chǎn)力

2023-07-20 09:00:00

人工智能自主AI代理

2013-11-20 09:29:30

Android應用

2021-02-04 13:00:40

樹莓派Linux

2018-07-23 14:57:12

2023-10-31 18:01:26

安全掃描代碼
點贊
收藏

51CTO技術棧公眾號