专栏首页搬砖记录IDEA-SpringBoot项目利用docker实现一键打包部署运行

IDEA-SpringBoot项目利用docker实现一键打包部署运行

服务器上配置

1. 开启docker远程访问 cd /lib/systemd/system sudo vim docker.service

#替换或修改:127.0.0.1(本地网络访问)换成0.0.0.0表示不限制访问地址
[Service]
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

2. 重载配置 systemctl daemon-reload 3. 重启docker 服务 systemctl restart docker.service

4. 开放端口(,阿里云配置访问规则,本地telnet试试能否连通) ubuntu命令:

  • sudo ufw allow 2375

centos命令:

  • firewall-cmd --zone=public --add-port=2375/tcp --permanent systemctl restart firewalld

windows配置

1. 配置用户环境变量

2. IDEA设置 需要先下载IDEA的docker插件,在插件市场直接安装即可

项目设置

1. pom文件 加入docker打包插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <repository>${project.name}</repository>
                    <tag>${project.version}</tag>
                    <buildArgs>
                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                    <dockerfile>Dockerfile</dockerfile>
                </configuration>
            </plugin>
        </plugins>
    </build>

2. pom同级目录下写Dockerfile

# 添加 Java 8 镜像来源
FROM java:8

# 添加参数
ARG JAR_FILE

# 添加 Spring Boot 包
ADD target/${JAR_FILE} app.jar

EXPOSE 8080

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

完成到这一步,然后直接在maven中执行打包,就会自动将Springboot项目打包成镜像上传到远程 但是并不会执行,还需要手动执行一次,因此下面的步骤用于取消这个手动过程,嫌麻烦的可以直接使用docker run命令执行镜像即可

**3. 配置本地免密ssh登录 ** windows本地: 执行生成ssh密钥,一路回车即可 ssh-keygen 生成的密钥文件会在C:\Users\你的账号.ssh下

将该目录下的id_rsa.pub文件内容追加到远程服务器的/home/你的用户名/.ssh下的authorized_keys文件中 如果没有authorized_keys文件,先用touch创建,然后把id_rsa.pub的内容追加进去。 必须要有authorized_keys文件,直接将id_rsa.pub放进去是没用的

4. 编写sh执行脚本 其内的端口号等docker执行命令按需更改

# 项目名称
projectName="maven-docker"
# 项目版本号
projectVersion="0.0.1-SNAPSHOT"
ssh 你的账号@你的IP "echo "你的sudo密码"|sudo -S docker stop ${projectName};sudo docker rm ${projectName};sudo docker run --net=host  --name=${projectName} -d -p 8080:8080 ${projectName}:${projectVersion};echo '执行完毕,回车继续...';read -p ''"

由于我的docker没有加入到可执行sudo命令的用户组,因此这里需要用sudo命令。 sudo -S 的意思是,从前面的echo中获取sudo命令

使用方法

  1. maven package 打包 (这一步会制作镜像并上传到远程docker仓库中)
  2. 运行sh文件 (这一步运行镜像)
  3. 访问

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 牛逼!Docker遇到Intellij IDEA,再次解放了生产力~

    Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    会呼吸的Coder
  • 当Docker遇到Intellij IDEA,再次解放了生产力~

    Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    好好学java
  • 当 Docker 遇上 IDEA ,生产力彻底炸裂了

    Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    民工哥
  • 提升10倍生产力:IDEA远程一键部署SpringBoot到Docker

    IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    lyb-geek
  • 当 Docker 遇到 Intellij IDEA,再次解放了生产力~

    Idea是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    芋道源码
  • IDEA 一键部署 Spring Boot 到 Docker,这个骚操作你会了吗?

    Idea是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    后端码匠
  • 当Docker遇到Intellij IDEA,再次解放了生产力~

    Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    肉眼品世界
  • 当Docker遇到Intellij IDEA,再次解放了生产力~

    Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    架构师修炼
  • 提升10倍生产力:IDEA远程一键部署SpringBoot到Docker

    IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    Java团长
  • 提升10倍生产力:IDEA远程一键部署SpringBoot到Docker

    IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    java思维导图
  • IDEA一键部署SpringBoot到Docker,这个骚操作你会了吗?

    IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

    Bug开发工程师
  • docker一键部署SpringBoot项目

    敲黑板:这个切记不要乱开!!!!!因为一旦开启访问服务器的docker就不需要账号密码了!!!

    猿码优创
  • docker一键部署SpringBoot项目

    敲黑板:这个切记不要乱开!!!!!因为一旦开启访问服务器的docker就不需要账号密码了!!!

    猿码优创
  • Docker从入门到掉坑(三):容器太多,操作好麻烦

    前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程。

    乔戈里
  • idea部署springboot工程到服务器Docker

    上一篇《手动部署springboot工程到Docker》仿佛依然不太便捷,因为需要手动上传jar包,作为懒癌最晚期的码奴,怎么能忍受,再进阶,可以考虑一键部署到...

    小尘哥
  • 加速 SpringBoot 应用开发,官方热部署神器真带劲!

    SpringBoot官方开发工具,如果你的应用集成了它,即可实现热部署和远程调试。

    macrozheng
  • 一分钟上手Docker容器

    在微服务时代,服务数量及规模越来越大,服务的部署及运维的模式如果仍然采用传统方式就会大大增加运维成本。所以微服务时代的运维方式一定是Devops模式,通过构建自...

    用户5927304
  • Java 开发提升十倍生产力:IDEA 远程一键部署 Spring Boot 到 Docker

    找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示

    芋道源码
  • IDEA直连服务器,进行项目Docker部署,实现一键启动

    在项目中使用docker后,通过docker的方式来启动系统,需要经过编译、打jar包、打镜像、启动等阶段。在各种自动化工具的出现,对打包、部署等工作...

    xcbeyond

扫码关注云+社区

领取腾讯云代金券