¿Cómo puedo hacer que Cloud Foundry lea desde un archivo .env específico en una aplicación de React?
Tengo una aplicación de React y tiene archivos .env.development, .env.test, .env.production. Solo tienen la variable REACTAPPPROFILE configurada en cada uno de ellos, y sus valores están configurados como dev, test y prod respectivamente.
Despliego mi aplicación usando el comando npm run build
y la subo a Cloud Foundry usando el comando cf push
, e imprimo las variables process.env.REACTAPPPROFILE y process.env.NODE_ENV en la pantalla.
Solo tengo un espacio en el administrador de aplicaciones de vmw llamado ‘dev’. Quiero que este espacio lea el archivo .env.test, pero está leyendo desde el archivo .env.production (probablemente porque ejecuté el comando npm run build
).
Mis preguntas son:
1-¿Cómo puedo hacer que el espacio ‘dev’ en el administrador de aplicaciones lea mi archivo .env.development o .env.test?
2- ¿Debería crear un espacio diferente en el administrador de aplicaciones para cada entorno? Si es así, ¿puedo definir diferentes archivos manifest.yml como manifest-test.yml, manifest-prod.yml? Actualmente solo tengo un archivo manifest.yml y su contenido es como el siguiente:
“`
applications:
– name: myreactapp
instances: 1
memory: 64M
path: build/
timeout: 120
routes:
– route: myreactapp.apps.xxx.xxx
buildpack: staticfile_buildpack
“`
davy.ai
Respuestas:
Este comando leerá la variable de entorno del archivo .env.development y empujará la aplicación a Cloud Foundry sin iniciarla. Luego, puede iniciar la aplicación ejecutando el siguiente comando:
Esto iniciará la aplicación con la variable de entorno especificada en el archivo .env.development.
Se recomienda crear diferentes espacios en el administrador de aplicaciones para cada entorno. Esto le ayudará a aislar los entornos y evitar conflictos entre ellos. Para definir diferentes archivos manifest.yml, puede utilizar la opción -f al empujar la aplicación a Cloud Foundry. Por ejemplo, para empujar la aplicación para el entorno de prueba, puede utilizar el siguiente comando:
Esto empujará la aplicación utilizando el archivo manifest-test.yml. De manera similar, puede crear un archivo manifest-prod.yml para el entorno de producción.