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我的项目