文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

IDEA集成docker部署springboot项目的全过程

2024-04-02 19:55

关注

1.IDEA下载docker插件

此处不再赘述,和其他插件一样安装

2.云服务器docker

说明:本人服务器使用的是centOS 7

2.1 docker的安装

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

2.2 停止docker服务

为了防止restart docker服务出现错误,保险起见,最好先停止docker服务,再修改配置文件。

停止docker之前要先停止正在运行的容器,否则后面启动容器也有可能出错。

停止运行容器:

docker stop [container_id]

然后停止docker服务

systemctl stop docker

2.3 docker配置文件修改

为了使用HTTP方式让IDEA连上服务器上的docker,需修改docker的配置文件,修改内容如下:

vim /usr/lib/systemd/system/docker.service

修改Execstart 这行内容,将其替换为以下内容,目的是开放2375端口,能进行HTTP远程连接:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.4 刷新配置文件

命令如下:

systemctl daemon-reload

测试配置文件是否生效,在服务器端输入如下命令,如果出现JSON字符串内容,则文件生效

curl http://127.0.0.1:2375/version

2.5 启动docker服务

命令如下:

systemctl restart docker

2.6 防火墙增加2375端口

命令如下:

firewall-cmd --zone=public --add-port=2375/tcp --permanent

重启防火墙:

firewall-cmd --reload

2.7 阿里云增加安全组规则

这里要注意在实例的页面进入安全组,然后配置规则,开放2375端口

2.8 测试远程HTTP连接

在本地浏览器输入 http://127.0.0.1:2375/version ,同理, 如果出现JSON字符串,则能进行HTTP连接。

到此, 可以用IDEA进行集成dokcer了。

3. maven项目打包

3.1 打包插件

在pom文件中添加springboot打包插件


<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

3.2 资源文件的打包及打包后的位置

除了打包java源文件,还需要将资源文件打包,如xml/yml/properties/html等文件。但要注意html文件打包的位置,要放在META-INF/resources目录,否则启动jar包后,访问不到html页面。


<resources>
    <resource>
        <directory>src/main/java</directory>
        <!--这里我将mapper文件放在了java目录下 所以需要声明编译位置-->
        <includes>
            <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
    </resource>
    <resource>
        <!--声明yml配置文件编译位置-->
        <directory>src/main/resources</directory>
    </resource>
    <resource>
        <!--声明html文件编译位置 并将编译后的文件放入指定位置-->
        <directory>src/main/webapp</directory>
        <targetPath>META-INF/resources</targetPath>
    </resource>
</resources>

3.3 docker插件

需要注意两个地方,一是docker镜像名字前面需要有一个前缀,其组成是[前缀]:[镜像名]:[版本号],二是指定镜像名时不得包含大写字母。

项目信息中name和version都要用到


<groupId>org.team</groupId>
<artifactId>coolmeeting</artifactId>
<version>1.0-SNAPSHOT</version>
<name>coolmeeting</name>
<description>docker start meetingMS</description>

<properties>
    <java.version>1.8</java.version>
    <docker.image.prefix>team</docker.image.prefix>
</properties>


<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <!-- tag::plugin[] -->
    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
        <configuration>
            <dockerHost>http://127.0.0.1:2375</dockerHost>
            <!--镜像名字 不能含有大写字母-->
            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
            <!--dockerfile所在位置-->
            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
            <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <!--target所在位置-->
                    <directory>${project.build.directory}</directory>
                    <!--将jar包和Dockerfile放在统一目录-->
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
        </configuration>
    </plugin>
    <!-- end::plugin[] -->

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <skipTests>true</skipTests>
        </configuration>
    </plugin>
</plugins>

Dockerfile文件如下,注意创建该文件时D要大写 , /meetingMS.jar是别名,方便书写


FROM java:8
VOLUME /tmp
ADD coolmeeting-1.0-SNAPSHOT.jar /meetingMS.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/meetingMS.jar"]

3.4 clean、install和docker build

先用maven进行clean和install,然后用maven插件docker进行build

在这里插入图片描述

打包后的文件目录:

在这里插入图片描述

启动容器

在这里插入图片描述

设置启动参数

在这里插入图片描述

4.遇到的坑

5.参考

springboot打成jar包无法访问jsp或者html,404错误

关于yml或者properties文件没有被扫描到

运行Jar包时指定启动端口

stackover

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

IDEA集成Docker的快捷部署

到此这篇关于IDEA集成docker部署springboot项目的文章就介绍到这了,更多相关IDEA集成docker部署springboot项目内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯