Jika saya menggunakan variabel lingkungan di konfigurasi nginx, dan nginx dikonfigurasi untuk hanya melayani file statis (html, js, css - misalnya aplikasi AngularJs), apakah ada cara saya dapat menggunakan variabel lingkungan dalam file JS yang dilayani nginx ? Atau satu-satunya cara untuk melakukan ini untuk menjalankan server non-statis, misalnya io.js, php, dll.
Btw Anda tidak dapat menggunakan variabel lingkungan secara asli di konfigurasi nginx.
Ketika saya berbicara tentang lingkungan vars di konfigurasi nginx yang saya maksud seperti di posting ini: Bagaimana saya bisa menggunakan variabel lingkungan di Nginx.conf di mana mereka menggunakan env APP_WEB_1_PORT_5000_TCP_ADDR;
dan$ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"};
Jelaskan kasus penggunaan Anda dengan tepat
Kasus penggunaan khusus saya adalah bahwa saya memiliki aplikasi AngularJS bertenaga nginx dalam wadah buruh pelabuhan. Aplikasi ini adalah "Aplikasi Satu Halaman" yang menggunakan API yang berjalan pada sistem lain secara bersamaan. Saat ini saya menjalankan wadah buruh pelabuhan yang berbeda antara produksi dan pementasan karena aplikasi memiliki beberapa konfigurasi yang berbeda, misalnya kode Google-Analtyics. Data khusus lingkungan ini disimpan dalam config.js
file dan nilai saat ini hardcoded, satu nilai untuk master
cabang di git, dan nilai yang berbeda untuk staging
cabang. Saya ingin mengubah desain sehingga saya dapat menggunakan wadah yang sama untuk produksi dan pementasan. Saya ingin melewatkan var ENV ke dalam wadah ketika saya menjalankannya ( docker run -e GACODE=UA-12345-6 ...
) dan minta nginx menggunakan var ENV (via env GACODE;
dan $ENV{"GACODE"}
jadiconfig.js
file dapat menggunakan kode GoogleAnaltyics yang diteruskan, daripada meng-hardcoding mereka). Saya tidak tahu apakah ini mungkin atau tidak (maka pertanyaannya;)). Dengan hanya menggunakan nginx menjadikan wadah saya sebuah proses tunggal, sedangkan jika saya harus menggunakan io.js maka saya akan membutuhkan beberapa wadah yang terhubung dan lebih banyak bagian yang bergerak lebih kompleks).