openshift v3 中的 <OPENSHIFT_MYSQL_ENABLED> 环境变量是什么?

What is <OPENSHIFT_MYSQL_ENABLED> environment variable in openshift v3?

如何在 Openshift v3 Wildfly 容器的 standalone.xml 数据源上设置 enabled = "true",如下所示。

<datasource jndi-name="java:jboss/datasources/MySQLDS" enabled="true" use-java-context="true" pool-name="MySQLDS" use-ccm="true">

我将 OPENSHIFT_MYSQL_ENABLED 环境变量设置为 "true" 但没有任何反应。


答案参考网址如下URL:

https://developer.jboss.org/wiki/DataserviceBuilderOnOpenShiftV3Online

我遇到了同样的问题:变量替换过程忽略了环境变量 OPENSHIFT_MYSQL_ENABLED,所以我不得不徒手激活数据源,这就是我所做的: (我假设您的系统上安装了 OC 工具)

  1. 登录 OC:oc login
  2. 列出所有 pods 并找到 WildFly 实例:oc get pods
  3. 进入容器的SSH控制台:oc rsh <<pod-name>>
  4. 编辑 standalone.xml 文件 vi /wildfly/standalone/configuration/standalone.xml
  5. 在 vi 编辑器中输入 /datasource 搜索单词 "datasource",然后按回车键
  6. 找到数据源的属性 "enabled" 并将其值从 false 更新为 true(为此,按 i 进入 vi 插入模式)
  7. esc然后按:x
  8. 保存文件

我使用的是 OpenShift 社区版,所以重启容器总是很麻烦:找到可用资源(如内存和 CPU)并再次启动服务器需要很长时间,但是,除非重新启动服务器,否则不会启用数据源。在这方面,您不需要重启容器,只需使用 jboss-cli.sh 命令行工具重新加载 WildFly。 (我没有尝试终止进程并重新启动它,所以如果您尝试过,请评论它是否有效)。 应使用 oc rsh <<podname>> 或使用 Web 控制台上的终端在容器的终端上执行以下步骤。

  1. 输入jboss-cli 使用命令/wildfly/bin/jboss-cli.sh
  2. 键入 connect 登录 WildFly 控制台,系统将提示您输入用户名和密码。如果您没有凭据,请退出此控制台并通过执行脚本 /wildfly/bin/add-user.sh
  3. 创建一个 管理用户
  4. 通过键入 data-source read-resource --name=<<YOUR_DATASOURCE_NAME>> --include-runtime=true --recursive=true 检查您的数据源属性,然后在 "enabled" 属性 上跟进。
  5. 如果您的数据源被禁用,您应该通过输入命令 data-source enable --name=<<YOUR_DATASOURCE_NAME>>
  6. 来启用它
  7. 通过输入 reload 命令重新加载 WildFly。一旦 WildFly 重新启动,您将需要访问 jboss-cli.sh 并再次登录控制台。
  8. 使用命令 data-source test-connection-in-pool --name=<<YOUR_DATASOURCE_NAME>> 测试您的数据源连接。如果命令输出是 true 您的数据源已启动并且 运行.

Openshift v3 基于docker 容器,因此恐怕如果您重启容器,此配置可能会丢失。最合适的解决方案是将此操作包含在 docker 的脚本中,我还不知道它如何与 Openshift 平台一起工作。

希望对您有所帮助!