【问题标题】:How to add environment variables to openshift upon git push如何在 git push 时将环境变量添加到 openshift
【发布时间】:2016-02-21 14:00:27
【问题描述】:

我是 openshift 的新手,我已经努力在 git push 上修改我的环境,这样我每次推送时都不需要rhc env set ENV_VAR=value -a appname。根据文档,我可以在其中一个操作挂钩中进行导出,但是每当我这样做时,环境变量都不会注册..

自动注册这些变量的最佳方法是什么,而不是需要在机器中执行 rhc 命令或 ssh 并导出?

文档似乎已经过时,因为在 action_hooks 中导出的方法不再起作用

https://developers.openshift.com/en/managing-environment-variables.html

【问题讨论】:

    标签: linux environment-variables openshift


    【解决方案1】:

    我看到你已经有了答案,但如果其他人来这里问同样的问题,我想提一下 rhc env set command 实际上设置了一个变量持续,所以它“存活”代码推送、构建和齿轮重启。


    文档linked in the questionexport 可用于在构建期间查看环境变量;它不建议使用钩子设置环境变量。
    使用build 挂钩的变量列表本身应该可以正常工作。 (在撰写本文时为我工作)

    如果build 操作挂钩中的export 似乎不起作用(未列出变量),通常是由挂钩文件not being set executable(或文件中的语法错误)引起的。

    【讨论】:

    • 您好,感谢您的建议!写给user_vars的答案的建议实际上也不起作用:(你知道如何从其他几个openshift的环境中创建另一个环境吗?我需要这样的东西 $MY_DB_CONN_STRING=$OPENSHIFT_DB_HOST + ": " + $OPENSHIFT_DB_PORT + "/" $OPENSHIFT_DB_DBNAME
    • 这最好在应用程序代码中完成,即使用您列出的 OpenShift 变量构建连接字符串。 (无法远程使用rhc env set 设置由其他OpenShift 变量组成的环境变量。)
    【解决方案2】:

    是的,动作钩子方式已经坏掉了,即使你通过钩子导出,你也可以看到没有像文档中所说的那样抛出declare -x语句。

    您可以做的另一种方法是使用操作挂钩写入此目录中的文件:

    $HOME/.env/user_vars

    例如,如果您想设置RAILS_ENV=development,请编写一个生成此文件的脚本:

    $HOME/.env/user_vars/RAILS_ENV

    包含以下内容:

    development

    也花了很多时间寻找替代方法,但这个家伙把它钉出来,复制它以防万一将来链接断开:

    如果您需要在 GEAR 中设置一些环境变量,您可以使用操作挂钩。 预启动动作挂钩会很好地为您服务,但如果您需要在齿轮重启后恢复这些变量,预启动动作挂钩将不起作用。 另一方面,重启后操作挂钩将执行其操作,但我还没有设法让环境变量正常工作。在它执行之后,所有应该有值的环境变量都是空的。

    我所做的是修改预启动操作挂钩以将环境变量创建为$HOME/.env/user_vars下的文件

    # Actual script
    export OPENSHIFT_POSTGRESQL_DB_HOST="xxx.xxx.xxx.xxx"
    export OPENSHIFT_POSTGRESQL_DB_PORT="***"
    export OPENSHIFT_POSTGRESQL_DB_NAME="***"
    export OPENSHIFT_POSTGRESQL_DB_USERNAME="***""
    
    # Added script for post restart variables
    echo "xxx.xxx.xxx.xxx" > OPENSHIFT_POSTGRESQL_DB_HOST
    echo "***" > OPENSHIFT_POSTGRESQL_DB_PORT
    echo "***" > OPENSHIFT_POSTGRESQL_DB_USERNAME
    echo "***" > OPENSHIFT_POSTGRESQL_DB_PASSWORD
    After this, if you execute gear restart, the environment variables will exist and will be accesible from your application.
    

    参考:

    https://guilleml.wordpress.com/2015/02/17/setting-environment-variables-in-openshift/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-22
      • 2020-10-07
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 2015-07-10
      相关资源
      最近更新 更多