7.3.4.2. 创建 Frontend 服务


要将应用程序添加到 OpenShift Container Platform 中,您需要再次使用 oc new-app 命令指定应用程序所处的存储库,该仓库需要在创建数据库服务中设置数据库相关的环境变量

$ oc new-app path/to/source/code --name=rails-app -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=db_name -e DATABASE_SERVICE_NAME=postgresql

通过此命令,OpenShift Container Platform 会获取源代码,设置构建器镜像,构建应用程序镜像,并将新创建的镜像与 指定的环境变量 一起部署。该应用程序命名为 rails-app

您可以通过查看 rails-app DeploymentConfig 的 JSON 文档来验证环境变量是否已添加:

$ oc get dc rails-app -o json

您应看到以下部分:

env": [
    {
        "name": "POSTGRESQL_USER",
        "value": "username"
    },
    {
        "name": "POSTGRESQL_PASSWORD",
        "value": "password"
    },
    {
        "name": "POSTGRESQL_DATABASE",
        "value": "db_name"
    },
    {
        "name": "DATABASE_SERVICE_NAME",
        "value": "postgresql"
    }

],

检查构建过程:

$ oc logs -f build rails-app-1

构建完成后,您可以查看 OpenShift Container Platform 中运行的 pod。

$ oc get pods

您应看到其中一行命令以 myapp-<number>-<hash> 开头,这是您在 OpenShift Container Platform 中运行的应用程序。

在应用程序正常工作前,您需要通过运行数据库迁移脚本来初始化数据库。具体可通过两种方式实现:

  • 从正在运行的前端容器手动实现:

首先,您需要使用 rsh 命令执行到 frontend 容器:

$ oc rsh <FRONTEND_POD_ID>

从容器内部运行迁移:

$ RAILS_ENV=production bundle exec rake db:migrate

如果在 developmenttest 环境中运行 Rails 应用程序,则不必指定 RAILS_ENV 环境变量。

  • 通过在模板中添加部署前生命周期 hook。例如,检查 Rails 示例应用程序中的 hook 示例。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.