IDEA集成Docker构建SpringBoot镜像上传服务器

简介: IDEA集成Docker构建SpringBoot镜像上传服务器

IDEA集成Docker打包SpringBoot项目


参考学习


视频:IDEA整合Docker,快捷部署SpringBoot应用


文档:IDEA集成Docker的快捷部署


1、首先开启docker的2375端口监听


主要目的是为了之后IDEA进行连接服务器的2375端口


修改配置文件:


# 编辑打开其中的docker.service文件
vim /usr/lib/systemd/system/docker.service
# 将其中的execstart进行替换
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock


然后重新加载docker.server文件并重启docker服务:


# 重新加载服务配置docker.server
systemctl daemon-reload
# 重新启动docker
systemctl restart docker


来测试一下当前2375端口是否在监听:


# 若是出现json文件内容说明已经在监听了
curl http://127.0.0.1:2375/version
# 查看下2375端口是否被监听
netstat -nlpt
# 服务器防火墙开启2375端口
firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports


2、IDEA配置docker


打开IDEA的Settings配置,输入好下方内容即可自动进行连接:


tcp://192.168.1.109:2375



点击ok之后


在下方services窗口我们就可以看到对应的docker了,双击即可进行连接:



3、集成Maven插件


打开Pom.xml,进行配置docker-maven插件,分别包含你的镜像前缀、连接的远程服务器地址,之后即可进行构建打包直接上传你的服务器:


<properties>
    <!--docker镜像的前缀:标签名-->
    <docker.image.prefix>docker</docker.image.prefix>
</properties>
<plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>1.0.0</version>
  <configuration>
    <!--远程Docker的地址-->
    <dockerHost>http://服务器地址:2375</dockerHost>
    <!--镜像名称,前缀/项目名-->
    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
    <!-- 我们自己配置编写的docker目录,也就是dockerfile:指定位置在src/main/docker中    -->
    <dockerDirectory>src/main/docker</dockerDirectory>
    <!-- 我们要打包镜像需要带上的资源:默认会去找我们项目目录下对应打包好的jar包   -->
    <resources>
      <resource>
        <targetPath>/</targetPath>
        <directory>${project.build.directory}</directory>
        <include>${project.build.finalName}.jar</include>
      </resource>
    </resources>
  </configuration>
</plugin>



4、Maven添加SpringBoot项目启动类配置


接着添加你的项目主启动类,若是不配置就会出现:no main manifest attribute, in /app/app.jar 报错


<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <includeSystemScope>true</includeSystemScope>
        <!--指定主类-->
        <mainClass>com.**.**.xxxApplication</mainClass>
    </configuration>
</plugin>



主启动器如下完整路径:



5、项目打包,编写Dockerfile


执行Maven install首先来对我们项目进行打包,这里我们就能够提前看到打包后的jar包名,方便之后来配置编写DockerFile:



在过程3中我们默认Dockerfile的文件目录下src/main/docker,那我们就在main下新建docker目录,然后编写Dockerfile文件如下:



FROM java:8
MAINTAINER changlu 939974883@qq.com
VOLUME /tmp
ADD zf-web-1.0.0.jar /app.jar
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 8999
ENTRYPOINT ["java", "-jar", "app.jar"]


下面是对应DockerFile的详细说明:主要就是ADD命令后前面jar包名你要对应上自己的


# 指定的基础镜像
FROM java:8
# 镜像维护者姓名或邮箱地址
MAINTAINER Sunny 306509906@qq.com
# 指定容器挂载点到宿主机自动生成的目录,用于作为缓存目录
VOLUME /tmp
# 拷贝宿主机jar包到容器中,这里是将application-server.jar拷贝成app.jar【***修改这里的application-server.jar即可***】
ADD zf-web-1.0.0.jar /app.jar
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 暴露出端口(提示)
EXPOSE 28011
# 运行容器时执行的shell命令
ENTRYPOINT ["java", "-jar", "app.jar"]


6、构建镜像并上传服务器


在对应引入插件的下,找到docker,执行docker:build命令:



接着就会根据我们的DockerFile构建镜像并上传到我们的服务器,出现build success就表示构建成功!



由于我IDEA已经连接上了服务器的Docker,这里就可以直接查看我们上传的Springboot镜像:



7、进入容器执行运行命令


参考:mall在Linux环境下的部署(基于Docker容器)


使用xshell连接服务器:执行下列命令


# --link表示链接容器,让他们能够进行互相访问
# -p指定映射端口、-link表示链接指定的容器,对于各个容器可以使用对应后缀名来访问,如mysql访问其地址直接用db即可
# -d后台运行,之后就是镜像名
docker run -p 8999:8999 --name studo-admin \
--link mysql:db \
--link redis:redis \
--link nginx:nginx \
-v /etc/localtime:/etc/localtime \
-d studio/zf-web:latest


目录
打赏
0
0
0
0
25
分享
相关文章
|
12天前
|
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
42 0
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
48 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
本教程介绍ActiveMQ的安装与基本使用。首先从官网下载apache-activemq-5.15.3版本,解压后即可完成安装,非常便捷。启动时进入解压目录下的bin文件夹,根据系统选择win32或win64,运行activemq.bat启动服务。通过浏览器访问`http://127.0.0.1:8161/admin/`可进入管理界面,默认用户名密码为admin/admin。ActiveMQ支持两种消息模式:点对点(Queue)和发布/订阅(Topic)。前者确保每条消息仅被一个消费者消费,后者允许多个消费者同时接收相同消息。
41 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——发布/订阅消息的生产和消费
本文详细讲解了Spring Boot中ActiveMQ的发布/订阅消息机制,包括消息生产和消费的具体实现方式。生产端通过`sendMessage`方法发送订阅消息,消费端则需配置`application.yml`或自定义工厂以支持topic消息监听。为解决点对点与发布/订阅消息兼容问题,可通过设置`containerFactory`实现两者共存。最后,文章还提供了测试方法及总结,帮助读者掌握ActiveMQ在异步消息处理中的应用。
61 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ集成
本文介绍了在 Spring Boot 中集成 ActiveMQ 的详细步骤。首先通过引入 `spring-boot-starter-activemq` 依赖并配置 `application.yml` 文件实现基本设置。接着,创建 Queue 和 Topic 消息类型,分别使用 `ActiveMQQueue` 和 `ActiveMQTopic` 类完成配置。随后,利用 `JmsMessagingTemplate` 实现消息发送功能,并通过 Controller 和监听器实现点对点消息的生产和消费。最后,通过浏览器访问测试接口验证消息传递的成功性。
24 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ—— JMS 和 ActiveMQ 介绍
本文介绍如何在Spring Boot中集成ActiveMQ,首先阐述了JMS(Java消息服务)的概念及其作为与具体平台无关的API在异步通信中的作用。接着说明了JMS的主要对象模型,如连接工厂、会话、生产者和消费者等,并指出JMS支持点对点和发布/订阅两种消息类型。随后重点讲解了ActiveMQ,作为Apache开源的消息总线,它完全支持JMS规范,适用于异步消息处理。最后,文章探讨了在Spring Boot中使用队列(Queue)和主题(Topic)这两种消息通信形式的方法。
31 0
|
12天前
|
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Spring Boot 集成 Redis
本文介绍了在Spring Boot中集成Redis的方法,包括依赖导入、Redis配置及常用API的使用。通过导入`spring-boot-starter-data-redis`依赖和配置`application.yml`文件,可轻松实现Redis集成。文中详细讲解了StringRedisTemplate的使用,适用于字符串操作,并结合FastJSON将实体类转换为JSON存储。还展示了Redis的string、hash和list类型的操作示例。最后总结了Redis在缓存和高并发场景中的应用价值,并提供课程源代码下载链接。
36 0
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
162 0
|
9月前
|
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
368 6