2017-08-21 3 views
0

で既に展開し、環境変数を追加するアプリケーション私は現在、OpenShiftは、以下のコマンドを介しジェンキンスOpenShiftプラグインを利用することに我々のアプリケーションを構築し、展開するための場所でプロセスを持っている:OpenShift

openshift.newBuild("--image-stream=${builderImageName}", "--binary=true", "-n ${projectName}", "--to=${applicationName}:${targetEnv}") 
openshift.startBuild("${applicationName}", "--from-dir=.", "--wait=true", "-n ${projectName}") 
openshift.newApp("-n ${projectName}", "--template=${templateName}", "--param-file=${appDeployConfigFileName}", "--env-file=${appEnvFileName}") 

意図したとおり、この作品。私の質問は、アプリケーションがデプロイされたときです。追加する必要がある場合は、env変数をどのように更新できますか?私は基本的にuiを通ってenv変数を追加する機能を複製したいと思っています。しかし、私はopenshiftプラグインまたはocツールを使用してこれを行い、変数のファイルをキー値のセットだけでなく使用したいと考えています。

答えて

1

あなたはビルダーイメージソースからイメージへの対応のコンテナの画像別名(ワット/ S2IとSCMでの環境変数を格納しようとしている場合は、アプリケーション

oc set env dc/<your_app> MYVAR=foo -n <project_name> 
+0

おかげで、私はこれを試してみました、それが動作しますが、この解決策で問題があることを、複数のenv変数があるかもしれないことです追加されました。最初は新しいアプリでenv-fileに渡されます。このファイルをSCMに保存して、変数を更新したいのであれば、私はいくつかの構文解析とコマンドのストリングを行う必要があります。私は再びファイル全体を渡す方法を望んでいました。 – Scrobert

+1

代わりに設定マップを使用することを検討してください。これは元のキー/値を保持します。次に、環境変数をデプロイメント構成に追加するときは、構成マップから環境変数を参照してください。一度に設定マップを編集/置き換えることができ、再配置が自動的に開始されます。 –

+0

正解はConfigMapを使用することです – user2983542

0

の展開の設定を更新する必要があります)、環境ファイル.s2i/environmentを使用してください。

+0

コメントありがとうございます。私は環境変数をビルドに結合したくないので、環境変数から環境変数に変わります。 DeploymentConfigでそれらを指定したいと思います。 – Scrobert