Skip to content

打包部署

底座支持离线部署包及docker制品的构建,具体步骤如下。

选择配置文件

在idea的maven工具栏中,选择指定的profile。env-devenv-dist分别对应项目api module的资源目录(src/main/resources/config-env)下devdist两个文件中的配置文件。

maven profile选择

配置文件目录

打包插件说明

底座使用maven-assembly-plugin插件进行打包,package配置文件路径为项目跟路径下的package/package.xml; package.xml中包含package后的包结构及包的文件格式。

打包

在idea的maven工具栏中,执行根module下Lifecycle中的package即可进行打包。

包结构如下:

非docker环境,即可将上面的制品包上传服务器,解压后通过脚本启动。

注意

git默认会进行换行符自动转换,windows开发环境,注意启动脚本的换行符。如果被自动转化为了windows换行符,通过脚本启动时,会提示文件不存在,需要改为unix换行符LF。 可以通过git相关命令关闭换行符自动转换。

docker制品构建

基于以上步骤构建的部署包,底座提供了对应的Dockerfile,方便进行docker制品的构建。 为了适应jdk基础镜像,项目代码需做简单调整,具体如下:

启动脚本指令集更换

检查项目根路径中的package/bin/startup.shpackage/bin/env.shpackage/bin/shutdown.sh文件中,第一行将#!/bin/sh改为#!/bin/bash;

日志输出修改

修改项目根路径中的package/bin/startup.sh,将控制台输出重定向删除。

修改部署包文件格式

修改项目根路径中的package/package.xml,将文件格式有zip改为tar.gz。

xml
    <formats>
        <format>tar.gz</format>
        <!--生成同结构的目录, 方便查看, 可选-->
        <format>dir</format>
    </formats>

Dockerfile修改

run命令由

RUN apt update -y && apt install procps -y && ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

改为

RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone