ฉันมีหางภาชนะทำงาน systemd ฉันต้องการส่งผ่านตัวแปรสภาพแวดล้อมไปยังแอปพลิเคชันภายใต้
เมื่อฉันเริ่มต้นจากภายใน systemd หาง ( /sbin/init
เป็นบรรทัดคำสั่ง), หาง exposes ตัวแปรเพื่อ 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
ในขณะที่ใช้คำสั่งของฉัน
กล่าวอีกนัยหนึ่ง systemd ส่งผ่านตัวแปรให้กับเด็ก ๆ ที่เริ่มต้นได้หรือไม่
สำหรับ Dockerfile ดูพื้นที่เก็บข้อมูล GitHub