Если я использую переменную окружения в конфигурации nginx, а nginx настроен для обслуживания только статических файлов (html, js, css - например, приложение AngularJs), есть ли способ использовать переменную окружения в файле JS, который обслуживает nginx ? Или это единственный способ запустить нестатический сервер, например, io.js, php и т. Д.
Кстати, вы не можете использовать переменные окружения изначально в конфигурации nginx.
Когда я говорю о переменных среды в конфигурации nginx, я имею в виду, как в этом посте: Как я могу использовать переменные среды в Nginx.conf, где они используются env APP_WEB_1_PORT_5000_TCP_ADDR;
и$ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"};
Объясните точно ваш вариант использования
Мой конкретный пример использования - это приложение AngularJS на платформе nginx в док-контейнере. Приложение представляет собой «одностраничное приложение», которое использует API, работающий в другой системе. В настоящее время я запускаю другой докер-контейнер между производством и подготовкой, потому что в приложении есть несколько других настроек, например, код Google-Analtyics. Эти специфические для среды данные хранятся в config.js
файле, и значения в настоящее время жестко заданы, одно значение для master
ветви в git и другое значение для staging
ветви. Я хочу изменить дизайн, чтобы я мог использовать один и тот же контейнер для производства и постановки. Я хочу передать переменную ENV в контейнер, когда я запускаю его ( docker run -e GACODE=UA-12345-6 ...
), и чтобы nginx использовал переменную ENV (через env GACODE;
и $ENV{"GACODE"}
такconfig.js
файл может использовать переданные коды GoogleAnaltyics, а не жестко их кодировать). Я не знаю, возможно ли это или нет (отсюда и вопрос;)). Использование только nginx делает мой контейнер однопроцессным, тогда как, если мне нужно использовать io.js, мне понадобится несколько связанных контейнеров, а более движущиеся части будут более сложными).