2017-11-14 11 views
0

私はCLIと、appの例から取ったテンプレートを使ってアプリをビルドしてデプロイしようとしています。テンプレートファイルからアプリケーションをビルドしてデプロイする方法は?

マイ手順:

  1. ダウンロードtemplate
  2. OCログイン< ...>
  3. 新しいプロジェクト< ...>
  4. OC新しいアプリ-f ./ OC nodejs.json

結果:

(リモートのGitHubリポジトリのソースコードからビルドされた)外の世界へ到達可能なアプリ

問題:

それはすべて良いことだが、私はに位置して自分のソースファイルを使用したいです私の現在の作業ディレクトリ.私はそれを理解するために、これを行うためにテンプレートの一部を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のために開発されて見ることができるように

+0

ラン '' OC新しいビルドmyappという--imageストリームnodejs --binary --dry -run -o json''を実行し、トリガーを含むバイナリービルドの設定方法を確認してください。 –

+0

@GrahamDumpleton、サー、ライフセーバーです!私は100万のビルドでそれを理解していないでしょう! –

答えて

1

可能な解決策は、ローカルマシン上で(別名すべてのNPMのものを行う)を構築することである(s2iビルドコンテナに組み立てフェーズをスキップするため)、その後バイナリソースの配備[1] [2]から始めてください。

あなたは以下の手順でこれを行うことができます。

oc new-app <IMAGE-NAME>~/tmp/nocontent --name=<APPLICATION_NAME>

oc start-build <APPLICATION_NAME> --from-dir=<PATH_TO_DIR>/my-built-app

<PATH_TO_DIR>/my-built-app dirがルート上のバイナリ(またはJavaScriptファイル)を含有しなければなりません。

このコマンドは、ファイルをopensshiftの新しいビルドコンテナにストリームします(これはminishiftでも同じです)。

またで.s2iディレクトリを追加するより多くのカスタマイズを行うことができます<PATH_TO_DIR>/my-built-app

例:<PATH_TO_DIR>/my-built-app/.s2i [3]

:あなたは、ドキュメントを読んで、および/またはあなたのs2iのポッドを探求する必要がありますイメージを添付したs2iデフォルトスクリプトによって、ファイルの配置場所とファイルの移動先を知ることができます。

[1]:https://access.redhat.com/documentation/en-us/reference_architectures/2017/html/build_and_deployment_of_java_applications_on_openshift_container_platform_3/build_and_deploy#binary_source_deployment

[2]:https://docs.openshift.com/container-platform/3.6/dev_guide/builds/basic_build_operations.html

[3]:https://access.redhat.com/documentation/en-us/openshift_container_platform/3.6/html/using_images/source-to-image-s2i#customizing-s2i-images

関連する問題