【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目

日常开发项目的过程中,我们每次需要部署线上的时候,都需要安装一大堆的运行环境,例如:JDK、MySQL、Redis 等,非常花费时间、我们可以使用 Docker 的容器技术,方便快捷地搭建项目启动所需要的运行环境,本文介绍在开发工具 Idea 中安装 Docker 插件实现一键部署 SpringBoot 项目。

1、安装 Docker

可参考文章:【Docker】1、Centos安装Docker服务,需要开启 docker 远程连接

2、Idea 安装 Docker 插件

【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目_第1张图片

搜索:“Docker” 进行安装即可

3、连接 Docker 服务器

File -> Setting -> Build,Execution,Deployment -> Docker

【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目_第2张图片

点击 + 号,添加 Docker 连接配置

【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目_第3张图片

输入 Docker 服务器的 IP + 端口,如果配置了证书,可在 Certificates folder 中填入,如图所示,Connection successful 表示连接成功

4、准备 Dockerfile 文件

  • 1、Dockerfile 文件
# 基础镜像
FROM openjdk:8-jre

# 维护者信息
MAINTAINER xxx <xxxxxxxxxx@qq.com>

# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone

# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /tmp

# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD target/test.jar app.jar

# 容器启动执行命令
ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]

# 声明容器提供服务端口
EXPOSE 8080
  • 2、pom.xml 文件

pom.xml 文件打包插件添加 finalName 属性

<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

这样打包出来的 jar 包就不会携带版本号,不会与 Dockerfile 配置的 jar 包名称对应不上了

5、Run/Debug Configurations 配置

【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目_第4张图片

  • Server:表示使用哪台 Docker 服务器
  • Dockerfile:表示 Dockerfile 文件的位置
  • Image tag:镜像的名称
  • Container name:容器名称
  • Environment variables:运行时参数
  • Run options:容器启动参数
  • Maven Goal:配置项目打包命令,clean package -U -DskipTests,表示先 clean 再 package,跳过测试

6、打包部署

执行我们上一步添加的 Run/Debug Configurations,项目便开始打包、并自动推送 Docker 服务器构建容器启动运行

如您在阅读中发现不足,欢迎留言!!!

你可能感兴趣的:(Docker,docker,spring,boot,idea,一键部署,java)