热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动(推荐)

这篇文章主要介绍了SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

场景:

由于公司项目需要,需要使用部署微服务项目,而之前都是使用tomcat部署,操作十分繁琐。最近正好在学习Docker,利用Docker容器做部署尝试

需求:

  • 使用Docker部署服务
  • 支持idea插件,一键操作构建、推送镜像、运行
  • 单个镜像需根据不同端口部署多个容器
  • 日志持久化

必要软件

服务器(我的版本为CentOS:7.9)

  • Docker(需要开通远程访问,正式环境请使用证书加密,我这里测试用无加密)
  • Harbor 镜像仓库(可选)

开发端

  • Docker Desktop (支持本地运行docker-compose,如果不用docker-compose插件可以不用)下载地址
  • 桌面版docker必要插件下载地址
  • docker-comopse 下载地址
  • IDEA(废话)
  • docker插件 (可选,在idea插件市场下载,名字就叫Docker)

在idea中配置docker

配置

目录结构:

目录结构

父项目配置(关键配置):

pom.xml


    
    192.168.10.10
    
    ${docker.host}
    
    http://${docker.host}:2375
    
    library
    
    8080


... 


    
        
            
            
                com.spotify
                docker-maven-plugin
                1.2.0
                
                    
                    docker-harbor
                    ${docker.remote}
                    
                    ${docker.repostory}/${docker.registry.name}/${project.artifactId}
                    openjdk:8u282-jdk
                    作者
                    
                        8080
                        Asia/Shanghai
                    
                    
                    mkdir -p /epark/logs && ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
                    /epark
                    
                    ["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar","--server.port=${PORT}"]
                    
					
                    http://${docker.repostory}
                    
                    true
                    
                        
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
            
            
                com.dkanejs.maven.plugins
                docker-compose-maven-plugin
                2.5.1
                
                	
                    ${project.basedir}/../docker-compose.yml
                    1.22
                    ${docker.remote}
                    
                        
                        ${port}
                        ${docker.repostory}
                        ${project.build.finalName}
                        
                        ${project.build.finalName}-${port}
                        


                    
                
            
        
    

注意,${project.artifactId}引用的项目构件ID只能是小写

docker-compose.yml

version: '3.4'
services:
  eparking:
    # 镜像
    image: ${host}/library/${name}:latest
    # 容器名
    container_name: ${name}-${port}
    # 开机自启(自选)
    #restart: always
    # 环境配置
    environment:
      # 端口
      - PORT=${port}
    # 端口映射
    ports:
      - "${port}:${port}"
    # 卷映射,这里日志根据自己项目输出位置调整
    volumes:
      - "/log/${name}/${port}:/logs/"

配置了仓库的话需要配置Maven的settings.xml的账号密码


    
        docker-harbor
        仓库用户名
        仓库密码
    

子项目配置(关键配置)

pom.xml




	8082


... 


    
    	
        
            com.spotify
            docker-maven-plugin
        
        
        
            com.dkanejs.maven.plugins
            docker-compose-maven-plugin
        
    

如果一切顺利maven中会出现docker和docker-compse插件
先执行docker:build构建,再执行docker-compose:up启动

maven插件

成功后可以查看docker容器启动情况了,我这里使用的是docker插件

docker插件

好了,这功能花费了我很长时间,最终实现了这些功能。可能还有些小细节没展示出来,可以尽管提问

到此这篇关于SpringBoot+Docker+IDEA 实现一键构建+推送、运行、同镜像多容器启动的文章就介绍到这了,更多相关springboot docker idea多容器启动内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Eclipse 中 JSP 开发环境配置指南
    本文详细介绍了如何在 Eclipse 集成开发环境中配置 JSP 运行环境,包括必要的软件下载、Tomcat 服务器的配置以及常见问题的解决方法。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 本文介绍如何将自定义项目设置为Tomcat的默认访问项目,使得通过IP地址访问时直接展示该自定义项目。提供了三种配置方法:修改项目路径、调整配置文件以及使用WAR包部署。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
author-avatar
宝贝娜娜121_562
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有