Mac 简略的 Spring boot 我的项目(Idea 2021 配合Docker和Maven)

环境概述

  • Mac Big Sur 11.4
  • IntelliJ IDEA 2021.1.1 (Ultimate Edition)

Docker的装置以及在Idea里的配置

Docker的装置非常简单,只须要应用Homebrew装置即可(没有homebrew能够自行搜寻装置homebrew)

brew install --cask --appdir=/Applications docker

装置后须要点开顶部的图标,输出本机明码前方可通过命令行验证Docker是否装置胜利

docker --version

如果装置胜利,即可进入Idea软件中对Docker进行配置,进入Preferences --> Editor --> Plugins,搜寻Docker进行装置

装置实现后进入Preferences --> Build, Execution, Deployment --> Docker,点击加号新建一个Docker,并尝试连贯,如连贯胜利上面会显示Connection successful

Idea 创立新我的项目

Idea 新创建我的项目,填入名字等信息

这里SDK版本为1.8, JAVA版本为JAVA 8是因为目前网上的教程大多以这两个版本开发,更高的版本我没有尝试,因为放心有兼容问题

第二步是选定依赖库,因为咱们前面会依据pom.xml对依赖库进行更新,所以这里能够临时不选,间接点FINISH即可

批改pom.xml并更新依赖库

批改pom.xml文件,将所需的docker, spring-boot-web等依赖库增加进去,留神后面有些内容是依据我的项目的名字来决定的,如有须要能够间接复制<properties>标签及当前的内容对你的文件进行批改(留神spring-boot版本最好和你创立时设定版本统一)

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.5.0</version>    <relativePath/> <!-- lookup parent from repository -->  </parent>  <groupId>com.example</groupId>  <artifactId>docker-demo</artifactId>  <version>0.0.1-SNAPSHOT</version>  <name>docker-demo</name>  <description>Demo project for Spring Boot</description>  <properties>    <java.version>1.8</java.version>    <docker.image.prefix>springboot</docker.image.prefix>  </properties>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter</artifactId>    </dependency>    <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>            <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot</artifactId>      <version>2.5.0</version>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>      <!-- Docker maven plugin -->      <plugin>        <groupId>com.spotify</groupId>        <artifactId>docker-maven-plugin</artifactId>        <version>1.0.0</version>        <configuration>          <imageName>${docker.image.prefix}/${project.artifactId}</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>      <!-- Docker maven plugin -->    </plugins>  </build></project>

批改实现后能够看到左边多了个小图标,点击即可对依赖库进行下载安装

Controller的增加以及测试

在src/main/java/com/example/dockerdemo下创立一个新的文件夹Controller

并在Controller下新建文件HomeController.java,内容为:

package com.example.dockerdemo.Controller;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.bind.annotation.GetMapping;@RestControllerpublic class HomeController {        @GetMapping("/")    public String Home() {        return "Homepage";    }}

src/main/java/com/example/dockerdemo目录下双击进入DockerDemoApplication.java,点击左侧边绿色三角形运行服务器

若Springboot胜利运行,关上浏览器拜访 localhost.com:8080,便可看到如下画面:

Maven打包以及Dockerfile的编写

如果后面的操作没问题的话,咱们加下来便能够试着对咱们刚刚实现的我的项目进行打包,在Idea里通过Maven对我的项目进行打包非常简单,点击最左边侧边栏Maven图标,点击Lifecycle双击package便可对我的项目进行打包

如果打包胜利,会在根目录target目录里生成一个jar文件

在根目录下新建文件Dockerfile

填入以下内容,留神这里docker-demo-0.0.1-SNAPSHOT.jar要与打包创立的jar文件同名

FROM openjdk:8-jdk-alpineVOLUME /tmpEXPOSE 8080ADD /target/docker-demo-0.0.1-SNAPSHOT.jar /app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

创立镜像以及运行

实现Dockerfile当前,间接点击左侧栏运行符号,点击New Run Configuration

Image tag填上你想取的镜像的名字, Run标签下Conatiner name填上你想取的容器的名字(没有Run标签的话通过Build左边的Modify options调出)

接着点击Bind ports将容器和本机通过端口连接起来(没有Bind ports选项的话通过Run左边Modify调进去),默认的话主机和容器端口都是8080。因而点击加号将主机和容器连接起来

接着在Before launch标签下点击加号,增加一个Run Maven Goal。这样每次运行的时候就会主动打包,如不须要能够跳过这一步

Comand line 输出clean package -f pom.xml ,点击OK

接着点击保留设置,间接运行,Idea便会主动开始打包,创立镜像,创立容器并运行,接下来应用浏览器再次关上localhost.com:8080

呈现以下画面便表明功败垂成!

这样咱们就构建了一个轻量级的在容器内运行的Springboot我的项目