Բովանդակություն:

Ստեղծեք Docker Image Raspberry Pi- ի համար. 7 քայլ
Ստեղծեք Docker Image Raspberry Pi- ի համար. 7 քայլ

Video: Ստեղծեք Docker Image Raspberry Pi- ի համար. 7 քայլ

Video: Ստեղծեք Docker Image Raspberry Pi- ի համար. 7 քայլ
Video: How To Do Stable Diffusion LORA Training By Using Web UI On Different Models - Tested SD 1.5, SD 2.1 2024, Նոյեմբեր
Anonim
Ստեղծեք Docker Image Raspberry Pi- ի համար
Ստեղծեք Docker Image Raspberry Pi- ի համար

Այս հրահանգները ցույց են տալիս, թե ինչպես կառուցել Docker Image- ը Raspberry Pi- ի համար:

Քայլ 1: Ինչու՞ Docker:

Դուք կարող եք օգտագործել Raspberry Pi (RPi) - ն շատ բան անել, փոքրիկ վեբ սերվեր, AI օգնական, Robotics … և այլն:

Շատ նախագծեր, որոնք ցանկանում եք փորձել, բայց ցավերի կետերն են.

Կառուցելու ժամանակը

RPi- ն հետաքրքրված չէ մշակման հզորությամբ, և SD/USB կրիչը սահմանափակում է IO արագությունը: Օգտագործեք apt install all დამოკიდებულების փաթեթը պահանջում է մեկ ժամ, իսկ աղբյուրի ստեղծումը պահանջում է ավելի շատ ժամեր: Հատկապես արհեստական ինտելեկտի հետ կապված նախագծերի դեպքում `ավելի շատ սպասելու ժամանակ, քան փորձելու ժամանակ:

Տարբերակի կոնֆլիկտ

Բոլորը փորձում են բազմաթիվ նախագծեր մեկ RPi- ում: Երբ դուք փորձել եք որևէ նախագիծ և կցանկանայիք անցնել մեկ այլ նախագծի, կարող եք գտնել որոշ շինարարական ձախողումներ, որոնք առաջացել են կախվածության գրադարանների տարբերակի նախորդ նախագծի հակասությունից: Որոշ գրադարաններ դադարում են զարգանալ մի քանի տարի առաջ և կախված են որոշ հին գրադարաններից: Ի հակադրություն, ակտիվ նախագիծը կախված էր վերջին գրադարաններից: Երկու նախագիծը չի՞ կարող գոյություն ունենալ նույն SD/USB կրիչում:

Պատկերի պահուստավորում

Քանի որ որոշ նախագծեր չեն կարող գոյություն ունենալ, պարզապես ձեռք բերեք ավելի շատ SD/USB կրիչ ՝ նախագծի յուրաքանչյուր պատկերը կախված պահելու համար: Եթե գումարը սահմանափակ չէ: Բայց դա մեծացնում է ֆայլի/պատկերի կառավարման դժվարությունները, երբեմն ձեզ հարկավոր է փոխանակել SD/USB և բազմիցս բեռնաթափել ՝ պարզելու համար, թե ինչ եք ուզում:

Դժվար է կիսվել

Երբ դուք կառուցում եք ձեր նախագիծը և ցանկանում եք աղբյուրը կիսել ընկերների հետ, ձեր ընկերները կարող են հետ ստանալ կառուցվածքի ձախողումը: Բաշխման/գրադարանների տարբերակը չափազանց հին է կամ շատ նոր, կառուցման պարամետրեր և որոշ հնարքներ: Դուք պետք է օգտագործեք ժամանակը ՝ լուծելու ուրիշների խնդիրները, բայց չաջակցեք բուն նախագծին:

Վերոնշյալ ցավի կետերն իմ փորձն են այս մի քանի տարիների ընթացքում: Docker- ը կարող է օգնել դրա մեծ մասին:

Docker- ը սկսում է կառուցել նախապես կառուցված ծնողական պատկերի ընտրությունից: Օրինակ ՝ debian: jessie-slim սկիզբը հին կայուն Debian թեթև քաշի բաշխումից; հանգույց. 10-բարակ-բարակ սկիզբ Debian թեթև քաշի բաշխումից ՝ տեղադրված Node.js 10-ով: Նախապես կառուցված պատկերը կարող է շատ ժամանակ խնայել պատկերը լուսավորելու, թարմացումներ ստանալու և կախված գրադարաններ տեղադրելու համար: Յուրաքանչյուր նախագիծ կարող է սկսվել տարբեր OS տարբերակից, գործարկման ժամանակից և գրադարանների տարբերակից: Երբ ավարտեք ձեր սեփական նախագծի մշակումը, կարող եք Docker- ի պատկերը տեղափոխել docker hub և կիսել բոլորին: Projectրագրի բոլոր տվյալները կարող եք պահել նույն SD/USB- ում (տվյալները պետք է սովորական պահուստավորվեն այլ մեդիայի համար): Տեղական պահեստը խնայելու համար կարող եք նույնիսկ մաքրել Docker- ի պատկերը, երբ այն չեք օգտագործում, ցանկացած պահի կարող եք նորից դուրս գալ Docker հանգույցից:

Քայլ 2: Docker Overhead

Docker- ը ավելացրեց մեկ վիրտուալացման շերտ, որի վերին մասը մտահոգիչ է: Ես շատ չեմ փորձարկել Docker- ի գլխավերևի մասին: Google- ի արդյունքների մեծ մասը պնդում է, որ շատ ցածր է ընդհանուր ծախսերը, և ես գտա այս փաստաթուղթը որոշ հարակից հետազոտությունների մասին.

domino.research.ibm.com/library/cyberdig.n…

Քայլ 3: Տեղադրեք Docker- ը

Ուղղակի գործարկել.

curl -sSL https://get.docker.com | շ

Հղում ՝

www.raspberrypi.org/blog/docker-comes-to-…

docs.docker.com/get-started/

Քայլ 4. Docker Image- ի կառուցում

Խնդրում ենք գտնել նավահանգստի պատկերի կառուցման պաշտոնական ուղեցույցը.

docs.docker.com/get-started/part2/

Ես ունեմ 2 նախագիծ, որոնք օգտագործում են Docker- ը, դուք կարող եք գտնել Dockerfile- ը որպես տեղեկանք.

BanateCAD- ը պահանջում է Lua- ի գործարկման ժամանակ և որոշ լրացուցիչ Lua գրադարաններ: Միայն Lua 5.1 -ը կարող է համատեղելի բոլոր պահանջվող Lua գրադարանների հետ, բայց դա 2006 թ. Արտադրանքն է: Debian- ի վերջին բաշխումը, որը կարող է հաջողություն ստեղծել Lua 5.1 -ում, Jessie- ն է: Այսպիսով, ես կառուցեցի Lua 5.1 միջավայր Docker Image ՝ այն գործարկելու համար:

github.com/moononournation/BanateCAD/tree/…

OpenCV- ն ակտիվորեն զարգացող նախագիծ է, աղբյուրի կոդը կախված է վերջին գրադարաններից և կազմողից: Այսպիսով, շատ մեծ հավանականություն կա կառուցել ձախողված, գրադարանների մեթոդի ստորագրություն, կազմողի տարբերակ, կախվածության հակամարտություն… Ես կցանկանայի օգտագործել opencv4nodejs- ը ՝ պարզ ծրագիր ստեղծելու և վերջին գործառույթները չպահանջելու համար: Այսպիսով, երբ ես գտա opencv4nodejs հաջողություն ստեղծելու միջոց, ես կցանկանայի այն սառեցնել Docker Image- ի վրա և կատարել իմ իրական դիմումի կոդավորումը:

github.com/moononournation/face-aware-phot…

Քայլ 5. Developmentարգացման արագություն ընդդեմ պատկերի չափի

Buildարգացման կառուցման արագություն ընդդեմ պատկերի չափի
Buildարգացման կառուցման արագություն ընդդեմ պատկերի չափի
Buildարգացման կառուցման արագություն ընդդեմ պատկերի չափի
Buildարգացման կառուցման արագություն ընդդեմ պատկերի չափի

Դուք կարող եք գտնել, որ իմ face-aware-photo-osd նախագիծը ունի Dockfile- ի 2 տարբերակ.

github.com/moononournation/face-aware-phot…

Developmentարգացման ընթացքում ես սիրում եմ պառակտված RUN հրամանը հնարավորինս փոքր և կազմակերպում եմ ամենայն հավանականությամբ RUN հրամանը վերջին քայլին փոխելու հնարավորություն: Այսպիսով, զարգացման յուրաքանչյուր փոփոխության համար ես կարող եմ հնարավորինս օգտագործել նախորդ կառուցված շերտը և խնայել կառուցման արագությունը:

Ի հակադրություն, ես կհամատեղեմ բոլոր RUN հրամանները մեկում ՝ թողարկումից առաջ: ավելի փոքր շերտը կարող է շատ նվազեցնել Docker Image- ի չափը: Իմ դեմքով տեղյակ-լուսանկար-օսդ նախագիծը, որպես օրինակ, այն կարող է կրճատել ավելի քան 100 ՄԲ չափ:

Քայլ 6: Multi Arch Images

Multi Arch Images
Multi Arch Images

Ինչպես արդեն նշվեց, RPi- ն չի ձգտում մշակման հզորությանը: Օգտագործեք RPi build Docker պատկերը կարող է լավ ընտրություն չլինել, հատկապես, երբ ձեր միակ RPi- ն այլ նախագծեր է իրականացնում:

Օգտագործեք x86 համակարգիչ, որը կարող է օգնել ձեզ կառուցել Docker Image- ը: Մանրամասները գտեք այստեղ ՝

www.docker.com/blog/multi-arch-images/

պարզ 2 հրամանները կարող են զուգահեռ կառուցել x86 և ARM Docker Image:

docker buildx create -use

docker buildx build --platform linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab: 1.0.1-հրում.

Multi Arch- ը կարող է կառուցել բազմապլատֆորմային պատկեր նույն Docker պատկերի պիտակով, այնպես որ ձեր նախագիծը կարող է անխափան աշխատել տարբեր մեքենաներում: օրինակ

docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1

Անկախ նրանից, որ դուք գործարկում եք վերը նշված հրամանը RPi- ով կամ ձեր x86 համակարգչով, կարող եք ստանալ Lua- ի գործարկման միջավայր:

Քայլ 7: Շնորհավոր RPi:

Այժմ դուք կարող եք ավելի հեշտությամբ զարգացնել և կիսել ձեր RPi նախագիծը:

Խորհուրդ ենք տալիս: