Openshift 如何从模板文件构建和部署应用程序?

Openshift 如何从模板文件构建和部署应用程序?,openshift,Openshift,我正在尝试使用CLI和一个示例模板构建和部署一个应用程序 我的步骤: 下载 oc登录 新项目主管 oc新应用程序-f./nodejs.json 结果: 外部世界可以访问的应用程序(从远程github repo源代码构建) 问题: 这一切都很好,但据我所知,我想使用位于当前工作目录中的我自己的源文件,为了做到这一点,我需要修改模板的BuildConfig部分 { "kind": "BuildConfig", "apiVers

我正在尝试使用
CLI
和一个示例模板构建和部署一个应用程序

我的步骤:

  • 下载
  • oc登录
  • 新项目主管
  • oc新应用程序-f./nodejs.json
  • 结果:

    外部世界可以访问的应用程序(从远程github repo源代码构建)

    问题:

    这一切都很好,但据我所知,我想使用位于当前工作目录
    中的我自己的源文件,为了做到这一点,我需要修改模板的
    BuildConfig
    部分

    {
          "kind": "BuildConfig",
          "apiVersion": "v1",
          "metadata": {
            "name": "${NAME}",
            "annotations": {
              "description": "Defines how to build the application",
              "template.alpha.openshift.io/wait-for-ready": "true"
            }
          },
          "spec": {
            "source": {
              "type": "Git",
              "git": {
                "uri": "${SOURCE_REPOSITORY_URL}",
                "ref": "${SOURCE_REPOSITORY_REF}"
              },
              "contextDir": "${CONTEXT_DIR}"
            },
            "strategy": {
              "type": "Source",
              "sourceStrategy": {
                "from": {
                  "kind": "ImageStreamTag",
                  "namespace": "${NAMESPACE}",
                  "name": "nodejs:6"
                },
                "env":  [
                  {
                      "name": "NPM_MIRROR",
                      "value": "${NPM_MIRROR}"
                  }
                ]
              }
            },
            "output": {
              "to": {
                "kind": "ImageStreamTag",
                "name": "${NAME}:latest"
              }
            },
            "triggers": [
              {
                "type": "ImageChange"
              },
              {
                "type": "ConfigChange"
              },
              {
                "type": "GitHub",
                "github": {
                  "secret": "${GITHUB_WEBHOOK_SECRET}"
                }
              },
              {
                "type": "Generic",
                "generic": {
                  "secret": "${GENERIC_WEBHOOK_SECRET}"
                }
              }
            ],
            "postCommit": {
              "script": "npm test"
            }
          }
        }
    

    您能帮我编辑这个文件吗?

    据我所知,您正在为nodejs开发:

    一个可能的解决方案是在本地机器上构建(aka do all npm stuff)(跳过s2i构建容器中的组装阶段),然后从二进制源部署开始[1][2]

    可以通过以下步骤执行此操作:

    oc-new-app~/tmp/nocontent--name=

    [2] :


    [3] :

    Run
    oc new build myapp--image stream nodejs--binary--dry Run--o json
    并查看输出,看看它是如何设置二进制构建的,包括触发器的。@GrahamDumpleton,先生,你是救命恩人!我不可能在一百万次的构建中找到它!