我正在安装openhift客户端工具,如下所述:https://developers.openshift.com/en/getting-started-windows.html#client-tools.在"设置您的机器"一步,我收到错误:
rhc setup C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:在`require':无法加载这样的文件--dl/import(LoadError)
完整堆栈跟踪:
C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- dl/import (LoadError)
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/net-ssh-2.9.2/lib/net/ssh/authentication/pageant.rb:1:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/net-ssh-2.9.2/lib/net/ssh/authentication/agent/socket.rb:5:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/net-ssh-2.9.2/lib/net/ssh/authentication/agent.rb:22:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/net-ssh-2.9.2/lib/net/ssh/authentication/key_manager.rb:4:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:4:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/net-ssh-2.9.2/lib/net/ssh.rb:11:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in …
Run Code Online (Sandbox Code Playgroud) 我们正在开发一个Spring Boot Web应用程序,我们使用的数据库是MySql ;
我们的设置是我们首先在本地测试它(意味着我们需要在我们的PC上安装MySql);
然后我们推向Bitbucket ;
Jenkins自动检测到对Bitbucket的新推送并对其进行构建(对于Jenkins mvn构建要通过,我们还需要在运行Jenkins的虚拟机上安装MySql).
如果Jenkins构建了传递,我们将代码推送到OpenShift上的应用程序(使用Jenkins上的Openshift部署插件).
我们可能已经弄明白的问题是:
在application.properties
我们不能硬编码MySql信息.由于我们的项目将在3个不同的地方运行(本地,Jenkins和OpenShift),我们需要使数据源字段动态化application.properties
(我们知道有不同的方法,但我们现在正在研究这个解决方案).
spring.datasource.url =
spring.datasource.username =
spring.datasource.password =
Run Code Online (Sandbox Code Playgroud)我们提出的解决方案是在本地和Jenkins vm中创建系统环境变量(以与OpenShift命名的方式命名它们)并分别为它们分配正确的值:
export OPENSHIFT_MYSQL_DB_HOST="jdbc:mysql://localhost"
export OPENSHIFT_MYSQL_DB_PORT="3306"
export OPENSHIFT_MYSQL_DB_USERNAME="root"
export OPENSHIFT_MYSQL_DB_PASSWORD="123asd"
Run Code Online (Sandbox Code Playgroud)
我们做到了这一点并且有效.我们还检查Map<String, String> env = System.getenv();
过环境变量可以变成java变量:
String password = env.get("OPENSHIFT_MYSQL_DB_PASSWORD");
String userName = env.get("OPENSHIFT_MYSQL_DB_USERNAME");
String sqlURL = env.get("OPENSHIFT_MYSQL_DB_HOST");
String sqlPort = env.get("OPENSHIFT_MYSQL_DB_PORT");
Run Code Online (Sandbox Code Playgroud)
现在唯一剩下的就是我们需要在我们中使用这些java变量application.properties
,这就是我们遇到的问题.
在哪个文件夹,以及我们如何,需要分配password
,userName
, …
我已经做了很多搜索.但是,仍然怀疑Node.js的package.json中的主要参数.
我知道第二个问题很奇怪.这是因为我在OpenShift上托管了一个Node.js应用程序,但该应用程序由两个主要组件组成.一个是REST API,另一个是提供服务的通知.
我担心如果将REST API实现为单个线程,则通知传递过程将阻止REST API.但是,他们必须连接到相同的MongoDB盒式磁带.此外,如果可能的话,如果两个组件都可以在相同的档位上运行,我想保存一个档位.
欢迎任何建议.
是否有必要只在openshift上使用git repo?我已经有了bitbucket/github git repo并且更愿意只推到那里.我可以简单地插入它,以便openhift得到推断吗?
或者为了简化,我只在github推送,但是当我想部署时,我用openshift做一些事情?
我确实检查了这一点,但它让我困惑:它正在谈论合并退出和新的(openshift)git?
我在Openshift平台上有两个帐户.如何设置我的电脑以便我可以管理它们rhc
?我在命令行参数中找不到任何相关选项.
突然之间,我无法部署一些以前可以部署的图像.我得到了以下pod状态:
[root@webdev2 origin]# oc get pods
NAME READY STATUS RESTARTS AGE
arix-3-yjq9w 0/1 ImagePullBackOff 0 10m
docker-registry-2-vqstm 1/1 Running 0 2d
router-1-kvjxq 1/1 Running 0 2d
Run Code Online (Sandbox Code Playgroud)
该应用程序不会启动.pod没有尝试运行容器.从事件页面,我有Back-off pulling image "172.30.84.25:5000/default/arix@sha256:d326
.我已经确认我可以使用标签来拉取图像docker pull
.
我还检查了最后一个容器的日志.由于某种原因它被关闭了.我认为pod应该至少尝试重新启动它.
我已经没有想法调试问题了.我还可以查看更多内容?
我找到了serval node.js项目,这些项目位于其顶部app.js
(如此openshift程序中):
#!/bin/env node
Run Code Online (Sandbox Code Playgroud)
这是什么意思?这是如何运作的?它在哪里有用?
我正在尝试编写一个NodeJS应用程序,它将使用https包中的请求方法与OpenShift REST API进行通信.这是代码:
var https = require('https');
var options = {
host: 'openshift.redhat.com',
port: 443,
path: '/broker/rest/api',
method: 'GET'
};
var req = https.request(options, function(res) {
console.log(res.statusCode);
res.on('data', function(d) {
process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
Run Code Online (Sandbox Code Playgroud)
但是这给了我一个错误(返回状态代码500).当我在命令行上使用curl做同样的事情时,
curl -k -X GET https://openshift.redhat.com/broker/rest/api
Run Code Online (Sandbox Code Playgroud)
我从服务器得到了正确的答复.
代码有什么问题吗?
期望的行为
我有一个GoDaddy域名,我正在使用OpenShift进行托管.
我想以下是真实的:
a)用户输入www.mysitename.com
>用户看到mysitename.com
b)用户输入www.mysitename.com/about.html
>用户看到mysitename.com/about.html
c)用户输入mysitename.com
或mysitename.com/about.html
他们也看到该网址.
d)总结一下,www
前缀永远不会显示在网站的任何地方.
约束
OpenShift主机没有静态IP,因此无法调整A record
at GoDaddy.
OpenShift应用程序的格式是http://appname-username.rhcloud.com
.
您可以使用以下命令在GoDaddy中设置cname:
www > appname-username.rhcloud.com
这意味着该网站可以访问,www.mydomain.com
但不能访问mydomain.com
.
建议的解决方案
关于该主题的几篇帖子提出了以下建议,但由于多种原因并不适合解决方案:
题
任何人都可以想到满足上述期望行为的另一种解决方案吗?
或者我是否需要更改为允许"裸体cname记录"的注册商?
相关文章
/sf/ask/1290172411/
使用Openshift的裸域
如何使用OpenShift为裸域添加别名?
编辑
这篇博文总结了这个场景:
http://blog.cloudflare.com/zone-apex-naked-domain-root-domain-cname-supp
我可以注册CloudFlare来解决问题吗?
我之前没有使用它,也不知道它是如何工作的.
openshift ×10
node.js ×3
rest ×2
asynchronous ×1
declare ×1
docker ×1
domain-name ×1
git ×1
https ×1
installation ×1
java ×1
javascript ×1
kubernetes ×1
mysql ×1
ruby ×1
spring ×1
spring-mvc ×1
ssh ×1
ssh-keys ×1