मेरे पास एक डॉकटर कंटेनर है जो सिस्टमड चल रहा है । मैं इसके अंतर्गत आने वाले अनुप्रयोगों के लिए पर्यावरण चर पास करना चाहता हूं।
जब मैं Docker ( /sbin/init
कमांड लाइन के रूप में) से systemd शुरू करता हूं , तो Docker वेरिएबल्स को systemd में उजागर करता है, लेकिन चाइल्ड सर्विसेज के सामने नहीं आता है । यदि मैं systemd.setenv=...
cmdline में जोड़ता हूं , तो चर पास हो जाते हैं। मैं एक क्लीनर समाधान की तलाश में हूं।
मैं /sbin/init
शुरू किए गए अनुप्रयोगों के लिए पारित पर्यावरण चर को कैसे उजागर करूं ?
% docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged -ti \
-e VAR1=1 motiejus/systemd_fedora20 \
init systemd.setenv=VAR2=2
...
Welcome to Fedora 20 (Heisenbug)!
...
[ OK ] Reached target Multi-User System.
[root@740690365eb0 ~]# env | grep VAR
VAR2=2
मैं VAR1=1
अपनी कमान चलाते हुए देखने की उम्मीद करता हूं।
दूसरे शब्दों में, क्या सिस्टमड चर इसे शुरू करने वाले बच्चों को दे सकता है?
Dockerfile के लिए, github भंडार देखें ।