docker自动化发版 及idea 上传jar 到私服

本文详细介绍了项目的进项和标准版改造流程,包括版本号修改、打包位置调整、依赖管理及私服上传配置。同时,提供了从代码修改到最终部署的全过程指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.进项改造

1.1 版本号修改

进项修改custom custom-common custom-web 的版本号 根据项目名称定义

eg:

 

1.2 自动custom-web 打包位置修改

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <outputDirectory>../target</outputDirectory>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
    <finalName>custom-web</finalName>
</build>

1.3 修改引入标准版 jxindependent-startup 版本号 引入jar包即可

 

二.标准版改造

a.后期标准版会在发版的同时,将含有版本号的jar包放到maven私服,进项直接依赖即可

b.如果着急用可以下载标准版对应分支,手工传到私服,但注意不要和标准版冲突。

上传方式:

b1.在标准版代码中对应所有pom文件增加如下配置

<distributionManagement>
    <repository>
        <id>thirdparty</id>
        <url>http://mvn.dev.baiwang-inner.com:8081/nexus/content/repositories/thirdparty/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://mvn.dev.baiwang-inner.com:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

 

b2.并将jxindependent-startup 的pom文件打包方式修改为jar

b3.在maven的配置文件 setting.xml中 增加如下配置

    |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |-->

    <server>
      <id>releases</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>
    <server>
      <id>snapshots</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>
    <server>   
      <id>thirdparty</id>   
      <username>admin</username>
      <password>admin123</password>
    </server>
	
		
	

    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers>

 

b3.打包上传

idea—>Maven projects->jxindependent→1.clean 2.install 3.deploy

 

三.部署

3.1 机器配置

 

3.2 发版配置

具体可参考

自动发版工具的使用说明

 

<think>我们正在讨论如何在IntelliJIDEA中使用Spring Cloud和Docker实现自动化部署。参考了站内已有的引用,我们可以总结出以下步骤:1.确保已安装Docker Desktop(引用[1])2.编写Dockerfile(引用[2]和[4]提供了示例) 3.使用Maven或Gradle构建项目并生成可执行的jar4.配置Docker镜像构建和容器运行(可以通过IDEADocker插件)5.编写部署脚本(如引用[3]中的deploy.sh)来管理多个容器具体步骤:###1.安装Docker Desktop-从Docker官网下载并安装Docker Desktop,确保它正在运行。###2.在IDEA中安装Docker插件-打开IDEA,进入`File ->Settings ->Plugins`,搜索"Docker"并安装。 ###3.配置Docker连接-在IDEA中,`File ->Settings ->Build,Execution,Deployment ->Docker`,点击"+"添加一个Docker连接(通常使用默认的Unix socket或Windows下的命名管道)。###4.创建Dockerfile-在SpringCloud项目的根目录下创建`Dockerfile`,内容参考如下(以引用[4]为例):```dockerfile#使用基础镜像FROM openjdk:8-jdk-alpine#复制项目构建的jar文件到镜像中,并重命名为app.jarADDtarget/*.jar app.jar#指定容器启动时执行的命令ENTRYPOINT ["java","-jar", "/app.jar"]```注意:这里假设构建后的jar位于`target/`目录下。###5.配置Maven/Gradle构建-确保项目能够通过Maven或Gradle构建生成可执行的jar。在`pom.xml`中,使用`spring-boot-maven-plugin`插件打。###6.使用Docker插件构建镜像-在IDEA中,右键点击Dockerfile,选择“Build Image”,或者通过配置运行配置:-打开`Run-> EditConfigurations`,点击"+",选择"Docker",然后选择"Dockerfile"。-配置镜像名称和标签,例如`my-spring-cloud-app:latest`。###7.运行容器-在构建镜像后,可以在IDEADocker工具窗口中看到镜像。右键点击镜像,选择“Create container”,配置容器名称、端口映射等。###8.多服务部署(SpringCloud多模块)-对于多个SpringCloud服务,需要为每个服务编写Dockerfile,并分别构建镜像。-可以使用Docker Compose来编排多个容器。在项目根目录创建`docker-compose.yml`,例如:```yamlversion:'3'services:service1:image: service1-image:latestports:-"8080:8080"service2:image:service2-image:latestports:- "8081:8081"```-在IDEA中,右键点击`docker-compose.yml`,选择“Run”即可启动所有服务。###9.自动化部署(一键部署)-结合IDEA的Maven/Gradle插件和Docker插件,可以配置一个完整的构建和部署流程。-也可以编写Shell脚本(如引用[3]中的`deploy.sh`)来自动化构建镜像、启动容器等步骤。注意事项: -确保Dockerfile中复制的jar文件路径正确(例如,Maven构建的jar在`target/`目录)。-在SpringCloud配置中,使用`spring.profiles.active`指定环境(如引用[2]中的`-Dspring.profiles.active=dev`)可以通过Dockerfile的`ENTRYPOINT`传递。-使用Docker Compose时,注意服务间的网络通信,可以使用Docker Compose创建的网络。通过以上步骤,可以在IDEA中实现SpringCloud应用的Docker化部署,并利用IDEADocker插件简化操作。 §§相关问题§§1.如何为Spring Cloud微服务配置Docker网络以实现服务现? 2.在Docker中如何管理SpringCloud应用的不同环境(开、测试、生产)配置? 3.如何优化SpringCloud应用的Docker镜像大小? 4.使用Docker Compose部署Spring Cloud应用时,如何实现服务的高可用?</think>### 如何在IDEA中使用Spring Cloud和Docker实现自动化部署 以下是基于引用内容的实现步骤,结合IntelliJ IDEA自动化工具: #### 1. **环境准备** - 安装Docker Desktop并确保服务运行(引用[1]) - IDEA安装插件:`Docker`、`Cloud Code`(官方K8s/Docker支持工具) - 确认Spring Cloud项目已模块化(如Eureka、Gateway、微服务模块) #### 2. **配置Dockerfile** 每个微服务模块需单独创建Dockerfile(引用[2][4]): ```dockerfile # 基础镜像 (推荐alpine减小体积) FROM openjdk:17-jdk-alpine # 复制构建后的jar (Maven路径) COPY target/service-auth-*.jar /app.jar # 动态注入环境变量 (引用[2]) ENTRYPOINT ["java","-jar", "-Dspring.profiles.active=${ACTIVE_PROFILE:-dev}", "/app.jar"] ``` #### 3. **IDEA自动化配置** **步骤1:连接Docker引擎** `File > Settings > Build > Docker` → 添加Docker守护进程连接(Unix socket或TCP) **步骤2:创建Docker运行配置** - 右键Dockerfile → `Create Dockerfile Run Configuration` - 关键参数: ```conf Image tag: registry.example.com/auth-service:1.0 Bind ports: 8080:8080 Environment vars: ACTIVE_PROFILE=prod Build context: $MODULE_DIR$ ``` **步骤3:绑定Maven构建** 在`pom.xml`添加docker-maven-plugin(引用[4]增强): ```xml <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <tag>${project.version}</tag> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> ``` #### 4. **一键部署流程** **本地开阶段**: 1. 点击Maven生命周期:`clean package` 2. 选择Docker运行配置 → 点击Run(自动构建镜像+启动容器) 3. 在`Services`面板查看容器日志(引用[3]) **多模块部署**(引用[3]实践): - 创建`deploy.sh`脚本管理容器: ```bash #!/bin/bash case $1 in "modules") docker-compose -f docker-compose-micro.yml up -d ;; "stop") docker stop $(docker ps -q) ;; "rm") docker rm $(docker ps -aq) && docker rmi $(docker images -q) ;; esac ``` - 使用`docker-compose-micro.yml`编排服务 #### 5. **生产级优化建议** - **镜像瘦身**:使用多阶段构建(分离编译与运行环境) - **配置管理**:将`application.yml`挂载为Volume,避免重建镜像 - **服务现**:在Docker网络中固定Eureka容器IP(引用[3]网络配置) - **健康检查**:在Dockerfile添加`HEALTHCHECK`指令 #### 6. **调试技巧** - 进入容器:`docker exec -it auth-service sh`(引用[3]) - 实时日志:IDEA的`Docker > Containers`右键Attach - 端口映射检查:`Services > Docker > Containers`查看端口绑定 > **关键优势**:通过此方案实现"编码 → 构建 → 容器化"闭环,解决环境不一致问题(引用[1]),同时利用Docker Compose实现微服务协同部署(引用[3])[^1][^3][^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值