栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Spring Boot(Maven)+Docker打包

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot(Maven)+Docker打包

Spring Boot(Maven)+Docker打包

本文可以实现:将Spring Boot项目从GitHub clone到服务器上后,一条命令直接完成依赖下载-编译-镜像生成-容器运行。

注意:本文Spring Boot项目为单机部署,即只在一台服务器进行部署,并使用Maven构建项目,通过公网IP访问数据库。

前提

Spring Boot项目已可使用Maven打包为jar文件,并可通过java -jar example-0.0.1-SNAPSHOT.jar启动此文件。

必须安装Docker,Docker Compose。

操作
  • 第一步:在项目根目录下创建文件Dockerfile,内容如下,本文项目使用的是jdk11,开放8086端口。注意:需要将下文的两处example-0.0.1-SNAPSHOT改为你的项目的名字。

    FROM maven:3.8.3-openjdk-11 AS MAVEN_BUILD
    COPY settings.xml /usr/share/maven/conf/settings.xml
    COPY pom.xml /build/
    COPY src /build/src/
    WORKDIR /build/
    RUN mvn package
    
    FROM maslick/minimalka:jdk11
    COPY --from=MAVEN_BUILD /build/target/example-0.0.1-SNAPSHOT.jar /app/
    EXPOSE 8086
    ENTRYPOINT ["java","-jar","/app/example-0.0.1-SNAPSHOT.jar"]
    
  • 第二步:在项目根目录下创建文件settings.xml,目的是为了替换掉Maven官方源,使用国内源,文件内容如下:

    
        
        
        
        
        
        
        
            
                aliyunmaven
                central
                阿里云公共仓库
                https://maven.aliyun.com/repository/central
            
            
                repo1
                central
                central repo
                http://repo1.maven.org/maven2/
            
            
                aliyunmaven
                apache snapshots
                阿里云阿帕奇仓库
                https://maven.aliyun.com/repository/apache-snapshots
            
        
        
        
        
            
                
                    
                        aliyunmaven
                        aliyunmaven
                        https://maven.aliyun.com/repository/public
                        default
                        
                            true
                        
                        
                            true
                        
                    
                    
                        MavenCentral
                        http://repo1.maven.org/maven2/
                    
                    
                        aliyunmavenApache
                        https://maven.aliyun.com/repository/apache-snapshots
                    
                
            
        
    
    
    • 第三步:在项目根目录下创建文件docker-compose.yml,内容如下:
    version: '3'
    services:
      web:
        build: .
        ports:
          - "8086:8086"
    

    此时内容已经填充完毕,可以将项目推送至GitHub,下面一条命令直接从源代码部署运行。

    • 第四步:部署运行。

    在项目根目录下,执行如下命令,

    docker-compose up
    

    如果你想在后台执行该服务可以加上 -d 参数:

    docker-compose up -d
    

    等待项目构建运行即可!

最后

​ 项目构建运行完成之后,通过docker images会发现除了多出了一个我们刚构建的项目镜像之外,额外多了两个镜像maven:3.8.3-openjdk-11和minimalka:jdk11,这是构建我们自己的镜像时必须要用的基础镜像,如果以后还需要再此构建项目,可以将这两个镜像保留,否则可以将其删除。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号