Eova 怎么放在 Docker中,使用阿里云流水线构建Eova!!

Eova 快速开发框架不做过多解释,使用起来超级爽提高了我们的开发效率。

有要了解的可以去官网看下http://www.eova.cn/ 

最近我们想在docker中运行并且使用阿里云的云效工具去构建部署,接下来进入正题:

首先要先把eova 运行跑在docker 中,然后使用阿里云云效工具进行构建和部署

1.dockerfile 编写

我用的eova 3.3.0版本使用Undertow 启动服务,目录中有几个脚本分别支持window和linux环境的eova.bat 和 eova.sh 可以直接启动

在执行mvn clean package  会在target 打包生成 eova-pro-release.zip 文件所以我们只需要将这个文件copy到容器中解压,执行eova.sh start

命令就可以了下面是我用的Dockerfile文件内容,Dockerfile放在项目根目录下

 

 1 FROM openjdk:8-jdk-alpine
 2 # 设置时区
 3 ENV TZ=Asia/Shanghai
 4 # 时区写入系统文件
 5 RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
 6 #COPY ./SourceHanSansCN-Normal.ttf /usr/share/fonts/SourceHanSansCN-Normal.ttf
 7 COPY ./target/eova-pro-release.zip /eova-pro-release.zip
 8 RUN unzip eova-pro-release.zip
 9 RUN chmod +x /eova.sh
10 ENV ACTIVE_PARAMS=""
11 ENTRYPOINT ["/eova.sh","start"]

这个要注意的是我用的镜像是openjdk:8-jdk-alpine  所以eova.sh 文件内容要改下将 

#!/bin/bash   改为  #!/bin/sh

2.开始在云效中新建流水线,这个可以参考阿里云的文档去创建。

3.补充下,在真实部署的时候,发现自己实现的类无法覆盖原有的代码。这个是因为tomcat 是默认从classes优先加载,但是Undertow 和这个机制不一样需要改下生成文件

修改package.xml
  • 在 fileSets 中增加
    <fileSet>
                <directory>${basedir}/target/classes</directory>
                <outputDirectory>classes</outputDirectory>
            </fileSet>

     

  • 在dependencySets节点下dependencySet中增加排除自身jar的配置
    <excludes>
                    <exclude>cn.startom:mywadmin*:jar</exclude>
                </excludes>

     

  • 配置eova.bat 和 eova.sh 文件增加classes路径在上
  CP=${APP_BASE_PATH}/classes:${APP_BASE_PATH}/config:${APP_BASE_PATH}/lib/*  windows eova.bat类似配置即可

 

posted on 2020-02-28 11:14  陈哲  阅读(407)  评论(0编辑  收藏  举报

导航