【问题标题】:How can I make cloud foundry read from specific .env file in react app?如何让 Cloud Foundry 从 React 应用程序中的特定 .env 文件中读取?
【发布时间】:2022-01-11 05:39:30
【问题描述】:

我有一个 react 应用,它有 .env.development.env.test.env.production 文件。他们每个人都只设置了 REACT_APP_PROFILE 变量,并且他们的值设置为 devtestprod相应地。

我使用npm run build 命令部署我的应用程序并使用cf push 命令将其推送到云代工厂,并打印出 process.env.REACT_APP_PROFILEprocess.env.NODE_ENV 屏幕上的变量。

我在 vmw 应用程序管理器中只有一个名为 'dev' 的空间。我希望这个空间读取 .env.test 文件,但它从 .env.production 文件中读取(可能是因为我运行了npm run build 命令)。

我的问题是:

1- 如何使应用管理器中的空间 'dev' 从我的 .env.development.env.test 中读取文件?

2- 我应该在应用管理器中为每个环境创建不同的空间吗?如果是,那么我可以定义不同的 ma​​nifest.yml 文件,例如 manifest-test.yml、manifest-prod.yml 吗?我现在只有一个 ma​​nifest.yml 文件,其内容如下:

---
applications:
  - name: myreactapp
    instances: 1
    memory: 64M
    path: build/
    timeout: 120
    routes:
      - route: myreactapp.apps.xxx.xxx
    buildpack: staticfile_buildpack

【问题讨论】:

    标签: reactjs cloud-foundry pcf


    【解决方案1】:

    如何使应用管理器中的空间“dev”从我的 .env.development 或 .env.test 文件中读取?

    我不认为这是特定于 CF 的。这只是由您推送到 CF 的文件造成的。

    (可能是因为我运行了 npm run build 命令)。

    这也是我的想法。您正在使用 cf push 部署该命令的输出。如果输出是使用生产模式构建的,那么您只会看到生产,直到您将构建过程更改为在调试模式下生产某些东西。

    2- 我应该在应用管理器中为每个环境创建不同的空间吗?如果是,那么我可以定义不同的 manifest.yml 文件,例如 manifest-test.yml、manifest-prod.yml 吗?我现在只有一个 manifest.yml 文件,内容如下:

    这完全取决于您以及您希望如何组织和控制对应用程序的访问。我认为控制访问通常是对空间设计影响最大的因素。

    您可以邀请不同的开发者到每个空间。例如,如果你有 dev 和 prod 在不同的空间,那么你可以有效地限制对 prod 的访问。您可以邀请整个团队进行开发,但也许只有您的 SRE 团队进行开发。如果您将所有应用程序放在同一个空间中,那么您就无法做出这种区分。

    同时,更多的空间需要管理更多的工作,所以如果您不需要区分这种类型的访问控制,那么使用更少的空间可能更容易。

    【讨论】:

      猜你喜欢
      • 2018-06-22
      • 1970-01-01
      • 2018-07-08
      • 2021-11-30
      • 2018-02-07
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      相关资源
      最近更新 更多