关于springboot:Mac-简单的-Spring-boot-项目Idea-2021-配合Docker和Maven

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;

@RestController
public 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-alpine
VOLUME /tmp
EXPOSE 8080
ADD /target/docker-demo-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["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我的项目

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理