سأتحدث عن نهج تنظيم بيئات التنمية المحلية المعزولة على محطة العمل الخاصة بي. تم تطوير المنهج تحت تأثير العوامل التالية:
- تحتاج اللغات المختلفة IDEs المختلفة وسلاسل الأدوات ؛
- قد تستخدم المشاريع المختلفة إصدارات مختلفة من سلاسل المفاتيح والمكتبات.
يتمثل النهج في تطوير حاويات داخل LXD تعمل محليًا على كمبيوتر محمول أو محطة عمل مع إعادة توجيه إخراج الرسومات إلى المضيف.
التكوين على سبيل المثال أوبونتو 20.04 .
يتم عرض الأفكار حول الخيارات والأسباب في نهاية المقالة.
1. تثبيت LXD
في Ubuntu 20.04 ، لم يعد LXD متاحًا للتثبيت كحزمة deb ، فقط من خلال snap:
$ snap install lxd
بعد التثبيت ، تحتاج إلى إجراء التهيئة:
$ lxd init
المعلمة الوحيدة التي أغيرها هي storage bakend
أنني dir
أبسطها. نظرًا لأنني لا أستخدم اللقطات والنسخ ، فإن التحذيرات في الوثائق لا تخيفني:
وبالمثل ، تعتبر الواجهة الخلفية للدليل كخيار أخير.
إنه يدعم جميع ميزات LXD الرئيسية ، ولكنه بطيء للغاية وغير فعال لأنه لا يمكنه إجراء
نسخ فورية أو لقطات ، وبالتالي يحتاج إلى نسخ كامل تخزين المثيل في كل مرة.
2. إعداد ملف تعريف LXD
LXD — . default
:
$ lxc profile device add default X0 disk source=/tmp/.X11-unix/X0 path=/tmp/.X11-unix/X0
— X11 ;$ lxc profile set default environment.DISPLAY :0
— DISPLAY
;$ lxc profile set default raw.idmap "both 1000 1000"
— .
3.
images:ubuntu/20.04
:
$ lxc launch images:ubuntu/20.04 dev1
https://images.linuxcontainers.org, . images:
. Ubuntu : $ lxc launch ubuntu/20.04 dev1
.
:
$ lxc exec dev1 -- bash
Firefox VS Code ( ):
$ apt update
$ apt install curl gpg firefox
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list
$ apt update
$ apt install code
poweroff
! GPU , . :
$ lxc config device add dev1 mygpu gpu
;- — , .
4.
, , :
lxc start dev1
VS Code ubuntu:
lxc exec dev1 -- sudo --login --user ubuntu code
Firefox:
lxc exec dev1 -- sudo --login --user ubuntu firefox
, — ssh.
, — .
5.
, , , . , , , . OpenSSL , .
:
- (KVM, VirtualBox ..) — , , Windows ( , Linux) ;
- (Cloud9 , Eclipse Che ..) — , , — ;
- Docker — , , .
. : , (Puppet, Ansible ..), Docker. LXD , — $ lxc launch images:ubuntu/16.04 dev16
.
, — , . .