2.8.6. 热部署
热部署允许您在不生成新的 S2I 构建的情况下迅速对应用程序进行和部署更改。在这个镜像中启用热部署的方法因应用程序类型而异。
Ruby on Rails 应用程序
对于 Ruby on Rails 应用程序,使用传递给运行的 Pod 的 RAILS_ENV=development
环境变量运行构建 Rails 应用程序。对于现有的部署配置,可以使用 oc set env
命令:
$ oc set env dc/rails-app RAILS_ENV=development
其它类型 Ruby 应用程序(Sinatra、Padrino 等等)
对于其他类型的 Ruby 应用程序,应用程序必须使用 gem 构建,每次在运行的容器内更改源代码时都可以重新载入服务器。这些 gems 是:
为了能够在开发模式下运行应用程序,您必须修改 S2I run 脚本,以便网页服务器由所选 gem 启动,该 gem 会检查源代码中的更改。
使用 S2I run 脚本 的版本构建应用程序镜像后,使用 RACK_ENV=development
环境变量运行镜像。例如,请参阅 oc new-app
命令。您可以使用 oc set env
命令更新现有对象的环境变量。
您应该只在开发或调试时使用这个选项,我们不推荐在生产环境中启用这个选项。
要在运行的 pod 中更改源代码,请使用 oc rsh
命令进入容器:
$ oc rsh <pod_id>
进入正在运行的容器后,您的当前目录被设置为 /opt/app-root/src(源代码所在的目录)。