1

我正在尝试让 redmine 在 cloudcontrol.com 上运行。我有四个问题:

  1. 我需要做更多的事情来启动一个网络服务器,例如我每次部署时都需要运行 rake 任务。我可以把它们放在一个衬里吗?我在我的 Procfile 中得到以下测试:

网页:触摸 foobar;回声“巴巴兹”;bundle exec rails s -p $PORT -e production

但我既没有看到文件 foobar,也没有在日志文件中看到 barbarz :(

  1. 当我登录到服务器并想要启动应用程序时,它告诉我 tcp $PORT 已在使用中:

u24293@depvk7jw2mk-24293:~/www$ fuser $PORT/tcp # netstat 和 lsof 不可用 24293/tcp: 10 13 u24293@depvk7jw2mk-24293:~/www$ ps axu | grep 13 u24293 13 0.0 0.0 52036 3268 ?SN 15:22 0:00 sshd: u24293@pts/0

通过sshd???为什么会这样?

  1. 我需要在推送期间更改此默认行为: -----> Rails 插件注入 Injecting rails_log_stdout Injecting rails3_serve_static_assets

或者在它之后运行一些东西,因为easyredmine不喜欢供应商/插件中的插件(或者我快速修改easyredmine的代码)。我将如何做到这一点(不更改代码,像 capistrano 那样运行一个后钩子)?

  1. 我们在专用服务器上有自己的 gitlab,对于捆绑包,我需要提取这些宝石。如何在第一次部署之前获取运行应用程序的用户的公钥,以便将其添加到 gitlab?

提前致谢 :)

4

1 回答 1

1
  1. web 命令仅在 web 容器中执行。使用run bash将您连接到应用程序的特殊 ssh 容器。请参阅https://www.cloudcontrol.com/dev-center/Platform%20Documentation#secure-shell-ssh

    通常,您不能将多个命令放在一个 Procfile 行中。将它们包装在sh -c '<cmd1>; <cmd2>'调用中或显式使用 shell 脚本。请记住,此脚本将在每个正在启动的容器中执行。这包括您部署应用程序的容器数量以及在操作期间由平台触发的任何重新部署(在节点故障、插件更改等情况下)。

  2. 在 ssh 容器中,$PORT 由您连接到的 ssh 服务器使用。

  3. 如果是运行时 redmine 的问题,您可以删除上述启动脚本中的插件。如果当前在 gem 安装过程中出现问题,则您无法规避此行为。

  4. 目前不支持需要特殊 ssh 密钥的依赖项。如果您的服务器支持基于 https 的基本身份验证,则可以使用https://<username>:<password>@hostname语法

于 2013-02-13T16:51:52.160 回答