IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

之前博客已经谈到配置docker远程链接服务,这里再介绍如何在IDEA中配置docker,将项目部署到服务器上

前文

Docker之开启远程访问的实现

idea2021激活教程

https://www.yuque.com/docs/share/b996d27e-c888-45f2-bb1e-f6db5efe2485?#

https://www.jb51.net/article/178193.htm

去插件中心安装Docker插件,安装完重启IDEA。这个简单

在这里插入图片描述

配置连接远程docker,打开Docker插件,新建连接,在Engine API URL处输入服务器IP地址:2375。出现Connection successful代表链接成功,否则需要看看ip端口是否是通的

在这里插入图片描述

新建一个springboot项目,在pom文件中docker-maven-plugin插件,直接复制

<plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.1</version>
            <!--将插件绑定在某个phase执行-->
            <executions>
                <execution>
                    <id>build-image</id>
                    <!--将插件绑定在package这个phase上,也就是说,用户只需要执行mvn package,就会自动执行mvn docker:build-->
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!--指定生成的镜像名-->
                <imageName>clover/${project.artifactId}</imageName>
                <!--指定标签-->
                <imageTags>
                    <imageTag>latest</imageTag>
                </imageTags>
                <!--指定Dockerfile 的位置,${project.basedir}:项目的根路径下-->
                <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
                <!--指定远程docker api地址-->
                <dockerHost>http://192.168.6.215:2375</dockerHost>
                <resources>
                    <resource>
                        <!--容器中自定义jar包存放的位置,及对应的target目录-->
                        <targetPath>/</targetPath>
                        <!--本地jar包所在路径-->
                        <directory>${project.build.directory}</directory>
                        <!--需要包含本地jar包名称,对应的是Dockerfile中添加的文件名-->
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                <!--以下两行是为了docker push到DockerHub使用的-->
                <!--<serverId>docker-hub</serverId>
<registryUrl>https://index.docker.io/v1</registryUrl>-->
            </configuration>
        </plugin>

添加个url接口,方便访问:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@RestController
public class DockerdemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DockerdemoApplication.class, args);
}

@RequestMapping("/test")
public String test(){
    return "1. Hello world ! " + new SimpleDateFormat(" [yyyy-mm-dd  HH:mm:ss]").format(new Date());
}
}

在项目根目录新建Dockerfile文件

# Docker image for springboot application
# VERSION 0.0.1
# Author: bolingcavalry

### 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9

#作者
MAINTAINER BolingCavalry <zq2599@gmail.com>

#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp

#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/dockerplugindemo-0.0.1-SNAPSHOT.jar app.jar

#启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]

#暴露8080端口
EXPOSE 8080

在IDEA新建dockerfile启动文件

在这里插入图片描述

Dockerfile配置详情如下图所示,请按照图中的说明进行设置,确保每个红框中都会执行到:

在这里插入图片描述

上图中最下面的那个"Run Maven Goal"点击后,会弹出一个小窗口 ,用来输入要执行的maven命令,这里输入clean package -U -DskipTests,表示每次在构建镜像之前,都会将当前工程清理掉并且重新编译构建:

在这里插入图片描述

设置完成后,点击下图红框中的绿色三角按钮,执行此配置:

在这里插入图片描述
在这里插入图片描述

发布不成功可能会因为idea不是管理员权限打开的,笔者就遇到这种情况,发布失败,连不上服务器docker。或者防火墙,宿主机的端口没写对等等

在服务器上执行docker image可以查看镜像情况

在浏览器上访问地址:http://192.168.6.215:8080/test,得到响应如下图所示,可见应用在容器中正常运行:

在这里插入图片描述

如果修改了代码,再次点击上图的三角形启动,就再次发布部署了

关于IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署的文章就介绍至此,更多相关idea docker镜像部署内容请搜索编程宝库以前的文章,希望大家多多支持编程宝库

java如何实现socket连接方法封装: Java实现socket连接技巧Socket通信几乎无时不在,当然能够搜集到的信息也大量存在, 为了避免重复的劳作, 抽取了关于客户端和服务端的Socket, 并将其应用到适合JVM(L ...