在Openshift上想通过DockerfIile来Build一个镜像,这么做的原由是Pod文字化的问题。可以参考:http://123.57.164.21/?p=5207。
通常需要下面4个步骤:
- 1.git-clone 代码到公共文件夹。
- 2.Maven build 工程,build出可执行的Jar文件。
- 3.buildah通过Dockefile文件,利用可执行的Jar文件build镜像流。
- 4.创建Pod,引用上面Build好的镜像流。

1.git-clone
git-clone的话,没有什么特别的。注意git的branch即可,还有在Pieline贯穿始终的工作区。


2.maven
maven的话需要注意,因为我们的微服务工程里面可能有很多个微服务子工程,所以要通过 CONTEXT_DIR 指定Build哪一个微服务。
比如下面的目录结构



3.buildah
注意DOCKERFILE 和 CONTEXT 和 IMAGE

4.PileLine执行成功以后,创建Pod 引用这个镜像。



注意 Maven build出来的jar包在target文件夹中,所以Dockerfile中要注意路径


Dockerfile
FROM adoptopenjdk:11-jre-hotspot as builder RUN mkdir app RUN chmod -R 777 app WORKDIR app // 注意路径 ADD ./target/*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]