7.4. 使用 eap-s2i-build 模板构建应用程序镜像

eap-s2i-build 模板添加几个参数来配置应用源存储库的位置,以及用于构建应用的 EAP S2I 镜像。通过此模板,您可以将镜像流用于任何 JBoss EAP 版本,如 JBoss EAP 7.4、JBoss EAP XP 或 JBoss EAP CD。

流程

  1. 在 OpenShift 中导入 EAP 镜像。如需更多信息,请参阅为 JBoss EAP XP 导入 OpenShift 镜像流和模板
  2. 配置镜像流以接收应用镜像流中更改的更新并触发新构建。如需更多信息,请参阅配置定期导入 imagestreamtag
  3. 创建 eap-s2i-build 模板,以使用 EAP S2I 镜像构建应用镜像:

    $ oc replace --force -f https://raw.githubusercontent.com/jboss-container-images/jboss-eap-openshift-templates/master/eap-s2i-build.yaml

    eap-s2i-build 模板创建两个构建配置,以及两个与中间构建工件和最终应用程序镜像对应的镜像流。

  4. 使用参数处理 eap-s2i-build 模板,以创建最终应用镜像的资源。以下示例创建了应用程序镜像 my-app

    $ oc process eap-s2i-build \
      -p APPLICATION_IMAGE=my-app \ 1
      \
      -p EAP_IMAGE=jboss-eap-xp1-openjdk11-openshift:1.0 \ 2
      -p EAP_RUNTIME_IMAGE=jboss-eap-xp1-openjdk11-runtime-openshift:1.0 \ 3
      -p EAP_IMAGESTREAM_NAMESPACE=$(oc project -q) \ 4
      \
      -p SOURCE_REPOSITORY_URL=https://github.com/jboss-developer/jboss-eap-quickstarts.git \ 5
      -p SOURCE_REPOSITORY_REF=xp-1.0.x \ 6
      -p CONTEXT_DIR=microprofile-config | oc create -f - 7
    1
    应用程序镜像流的名称。应用程序镜像使用 latest 标签标记。
    2
    EAP 构建器镜像的 imagestreamtag。
    3
    EAP 运行时镜像的 imagestreamtag。
    4
    安装了 Red Hat Middleware 镜像的镜像流的命名空间。如果省略,则使用 openshift 命名空间。只有在 openshift 以外的命名空间中安装了镜像流时,请修改它。
    5
    应用的 Git 源 URL。
    6
    Git 分支或标签引用
    7
    包含要构建的应用程序的 Git 存储库中的路径。
  5. 使用 EAP 操作器准备应用镜像以进行部署。

    1. 配置 WildFlyServer 资源:

      $ cat > my-app.yaml<<EOF
      
      apiVersion: wildfly.org/v1alpha1
      kind: WildFlyServer
      metadata:
        name: my-app
      spec:
       applicationImage: 'my-app:latest'
       replicas: 1
      EOF
    2. 应用设置,并让 EAP 操作器创建新的 WildFlyServer 资源来引用此应用镜像:

      $ oc apply -f my-app.yaml
    3. 使用以下命令查看 WildFlyServer 资源:

      $ oc get wfly my-app

      其他资源