OpenShift

OpenShift PipLine Build Spring Boot 镜像的Tips

在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

注意DOCKERFILECONTEXTIMAGE

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"]