Si uso una variable de entorno en la configuración de nginx, y nginx está configurado para servir solo archivos estáticos (html, js, css, por ejemplo, una aplicación AngularJs), ¿hay alguna manera de que pueda usar la variable de entorno dentro de un archivo JS que sirve nginx? ? O es la única forma de hacer esto para ejecutar un servidor no estático, por ejemplo, io.js, php, etc.
Por cierto, no puede usar variables de entorno de forma nativa en la configuración de nginx.
Cuando hablo de variables de entorno en la configuración de nginx me refiero a como en esta publicación: ¿Cómo puedo usar variables de entorno en Nginx.conf donde usan env APP_WEB_1_PORT_5000_TCP_ADDR;
y$ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"};
Explique exactamente su caso de uso.
Mi caso de uso específico es que tengo una aplicación AngularJS con tecnología nginx en un contenedor acoplable. La aplicación es una "Aplicación de página única" que consume una API que se ejecuta en otro sistema por completo. Actualmente ejecuto un contenedor docker diferente entre producción y puesta en escena porque la aplicación tiene alguna configuración que es diferente, por ejemplo, el código Google-Analtyics. Estos datos específicos del entorno se guardan en un config.js
archivo y los valores están actualmente codificados, un valor para la master
rama en git y un valor diferente para la staging
rama. Quiero cambiar el diseño para poder usar el mismo contenedor para producción y puesta en escena. Quiero pasar un ENV var al contenedor cuando lo ejecuto ( docker run -e GACODE=UA-12345-6 ...
) y hacer que nginx use el ENV var (via env GACODE;
y $ENV{"GACODE"}
asíconfig.js
el archivo puede usar los códigos de GoogleAnaltyics que se pasan, en lugar de codificarlos). No sé si esto es posible o no (de ahí la pregunta;)). Usar solo nginx hace que mi contenedor sea un proceso único, mientras que si tengo que usar io.js, necesitaré múltiples contenedores vinculados y más partes móviles son más complejas).