4.2 配置manifest文件
在jar包中的META-INF
文件夹(没有就创建一个)中创建MANIFEST.MF
文件
并在文件中定义内容如下:
Manifest-Version: 1.0 Main-Class: com.gitlab_runner.Application
com.gitlab_runner.Application
是main方法所在的类Application的包路径,根据自己的定义
4.2 配置指定main class
在执行jar包命令程序中添加参数指定main class
路径
在Dockerfile的Java执行程序命令中添加指定主类配置
java -cp app.jar com.gitlab_runner.Application
-cp
表示classpath
,就是app.jar的main class路径
Dockerfile文件内容为
#关键字和值之间可以是空格" "也可以是等号"="
#指定基础镜像,以此镜像为基础构建
FROM openjdk:8-jdk-alpine
#作者
MAINTAINER hs
#设置环境变量
#JAVA_HOME环境变量定义,即配置jdk安装目录路径,需是jdk文件全路径名
ENV JAVA_HOME=/usr/local/java/jdk1.8.0.121
#MAVEN环境变量定义,即maven安装的位置,需是maven全路径名
ENV MAVEN_HOME=/usr/share/maven
#配置环境变量
ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
#指定容器的时区
ENV TZ=Asia/Shanghai
#复制文件到镜像中,将本地文件或目录复制到镜像指定位置,该操作也在.gitlab-ci.yml文件中脚本进行执行了
COPY app.jar app.jar
#时区配置,可省略
#RUN ln -snf /usr/share/zonginfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#容器入口,该命令应该是将每个字符串组合起来,nohub java -jar app.jar
ENTRYPOINT ["nohup","java","-jar","-cp","app.jar","com.gitlab_runner.Application"]
#声明要监听的端口(暴露端口,容器内部的端口,这里暂时不用)
EXPOSE 8089
那么我们是maven项目,maven项目配置指定识别的插件即可,在pom中配置插件
感谢阅读,祝君暴富!