nämedigi bilen gyzyklanyp bilersiňiz. DApp proýektiňizi konteýnerlemek üçin ulanmagy aňladýar. DOKKERIZE Docker-i Docker, programmalary ösdürmek, ibermek we işletmek üçin açyk platforma. Docker programma üpjünçiligini çalt üpjün edip bilersiňiz, aýyrmaga mümkinçilik berýär. programmalaryňyzy infrastrukturaňyzdan web programmalary, API-ler, ykjam programmalar we arkadaky hyzmatlar bar. Youazan koduňyzy, ulanýan kitaphanalaryňyzy we işlemegi üçin zerur konfigurasiýalary öz içine alýar. Goýmalarda Operasiýa ulgamy (OS), tor sazlamasy, web serwerleri, maglumat bazasy we programmaňyz bilen aragatnaşyk saklaýan beýleki hyzmatlar ýaly infrastruktura. Şeýle hem, programmaňyzyň işleýän enjamlary ýa-da wirtual maşynlary bar. Docker, programmaňyzy “ CONTAINER” diýilýän gaty izolirlenen gurşawda ýekeje gurama hökmünde gaplamaga we işletmäge mümkinçilik berýär. Konteýner Konteýnerler ýeňil we programmany işletmek üçin zerur zatlary öz içine alýar, şonuň üçin öý eýesine gurnalan zatlara bil baglamagyň zerurlygy ýok. Işleýän wagtyňyz konteýnerleri paýlaşyp bilersiňiz we paýlaşýanlaryňyzyň hemmesiniň birmeňzeş işleýän konteýner alýandygyna göz ýetiriň. Mysal üçin, siz we kärdeşleriňiz Node.js we Hardhat ulanýan dApp taslamasynyň üstünde işleýärsiňiz. Ilki bilen, kärdeşleriňiziň programmany ýerli derejede işletmezden ozal öz ulgamlaryna Node.js we Hardhat gurnamalydygyny bilip, taslamany ýerli enjamyňyzda gurnadyňyz. Indi, kärdeşleriňiziň biriniň Node.js we Hardhat bilen gabat gelmeýän enjam ulanýandygyny göz öňüne getireliň. Bu meseläni nädip çözüp bilersiňiz? “Docker” -iň kömegi bilen, programmaňyzy ähli baglylyklar bilen birlikde islendik operasiýa ulgamynda işläp bilýän ýekeje konteýnerde gaplap bilersiňiz. Bu programma üpjünçiligini ýa-da garaşlylygy dürli maşynlara aýratyn gurmak meselesini çözýär. Suratlar Arzaňyzy konteýner edeniňizden soň, ony nädip işletmeli? Öň tarapy dörediji hökmünde, täze React programmasyny açanyňyzda, adatça ýa-da işleýärsiňiz. Bar bolan taslama üçin, adatça ýerli görnüşde işlemek üçin soň bilen işledersiňiz. Şonuň ýaly-da, konteýner işletmek üçin diýilýän zat gerek. npx create-react-app npm init vite@latest git pull npm install konteýner şekili Konteýner şekili, programmaňyzy konteýneriň içinde işletmek üçin zerur bolan ähli faýllary, ikilikleri, kitaphanalary we konfigurasiýalary öz içine alýan standartlaşdyrylan bukjadyr. Everythinghli zady bir ýere jemlän ýaly, islendik gurşawda yzygiderli hereket edip biler. Konteýner şekili üçin aşakda serediň: Amallar Bu bölümde programmaňyzy konteýnerleşdirmegi we paýlaşmagy öwrenersiňiz. Zerur şertler -yň iň soňky wersiýasyny gurnadyňyz. Docker Desktop gurduň. Git müşderisini Faýllary redaktirlemek üçin IDE ýa-da tekst redaktory bar. Docker Visual Studio C ode ulanmagy maslahat berýär. Arzaňyzy saklaň Kök katalogyňyzda bu buýruk buýrugyny ulanyp dokeri işe giriziň: docker init Tekliplere jogap beriň ? What application platform does your project use? Node ? What version of Node do you want to use? 20.16.0 ? Which package manager do you want to use? npm ? Do you want to run "npm run build" before starting your server? No ? What command do you want to use to start the app? ["npm", "run", "dev"] ? What port does your server listen on? 5173 Katalogyňyzda , we atly üç sany goşmaça faýly görersiňiz .dockerignore compose.yaml DockerFile : Dockerfile, ulanyjynyň şekil ýygnamak üçin buýruk setirine çagyryp biljek ähli buýruklaryny öz içine alýan tekst resminamasydyr. Dockerfil : “Compose” faýly ýa-da faýly, “konteýner” programmalaryny tarapyndan göz öňünde tutulan düzgünlere eýerýär. compose.yaml compose.yaml nädip kesgitlemelidigi barada “Compose” spesifikasiýasy : Bu faýl gurluş we kontekstdäki faýllary we kataloglary aýyrýar. .dockerignore iň içinde faýly aýyryň we aşakdakylary goşuň: Dockerfile # syntax=docker/dockerfile:1 ARG NODE_VERSION=20.16.0 FROM node:${NODE_VERSION}-alpine # Use development node environment by default. ENV NODE_ENV development WORKDIR /app # Copy package.json and package-lock.json to the working directory COPY package.json package-lock.json ./ # Install dependencies RUN npm install # Copy the rest of the source files into the image COPY . . # Change ownership of the /app directory to the node user RUN chown -R node:node /app # Switch to the node user USER node # Ensure node_modules/.bin is in the PATH ENV PATH /app/node_modules/.bin:$PATH # Expose the port that the application listens on EXPOSE 5173 # Run the application CMD ["npm", "run", "dev"] Konteýner şekiliňizi şuny ulanyp guruň: docker build -t <your-image-name> . Konteýner şekiliňizi görmek üçin dok iş stoluňyza giriň, aşakda görkezilişi ýaly basyň Images ýa-da bu buýruk buýrugyny ulanyp bilersiňiz, docker images konteýner şekiliňizi terminalyňyzda görmek üçin Suraty işlediň: docker run -p 5173:5173 <your-image-name> Munuň ýaly çykyşy görmeli: > vite-project@0.0.0 dev > vite VITE v5.4.2 ready in 222 ms ➜ Local: http://localhost:5173/ ➜ Network: http://172.17.0.2:5173/ Programmany paýlaşmak Docker Hub-a ýa-da giriň giriň . düwmesini saýlaň. Ammar döretmek Ammaryňyzy şol bir konteýner şekiliniň ady bilen atlandyryň. göz ýetiriň. Görünýänligiň köpçülige . Dörediň Buýruk setirini ulanyp, Docker Hub-a giriň docker login -u <YOUR USERNAME> Parolyňyzy giriziň Typazanyňyzda parolyňyz görünmez surata täze at bermek üçin buýrugyny ulanyň. Docker ID bilen çalyşyň: getting-started docker tag YOUR-USER-NAME Bu . denied: requested access to the resource is denied Muny düzetmek üçin, ulanyp, enter basyň. docker login Ondan soň brauzeriňize ugrukdyrylarsyňyz, terminalyňyzy göçüriň we giriziň, OTP basyň CONFIRM şekili gaýtalaň Şular ýaly çykyşy görersiňiz: Bu, siziň suratyňyzyň gurlandygyny we reýestre girizilendigini görkezýär. Toparyňyz indi bu suraty çekip, programmany ýerli enjamda işledip biler. Konteýner suratyňyzy dok stoluňyzdaky ýa-da gözleg panelinde gözläp bilersiňiz. dok merkezindäki Näsazlyklary düzeltmek : Port dawasy : port eýýäm ulanylan bolsa. Roralňyşlyk : Porty ulanyp, prosesi kesgitledi we aşakdaky buýruklary ulanyp bes etdi: Çözgüt # Find the process using port 8000 lsof -i :8000 # Kill the process (replace <PID> with the actual process ID found from the previous command) kill -9 <PID> Ativea-da bolmasa, Docker konteýnerini başga portda işledip bilersiňiz: docker run -p 8001:8000 <your-image-name> Programmany täzeläň Programmaňyzy täzelän zadyňyz, mysal üçin sintaksis ýa-da funksiýa üýtgedseňiz, Doker stoluňyzy saklaň, basyň Containers Porty duruzyň we ýok etmek düwmesine basyň buýrugyny ulanyp, Programmany täzeden guruň docker build docker build -t <your-image-name> . Programmany täzeden işlediň docker run -p 5173:5173 <your-image-name> Netije Bu gollanmany ýerine ýetirip, programmaňyzy we oňa baglylyklary aňsatlyk bilen bir konteýnerde gaplap bilersiňiz, toparyňyz bilen paýlaşyp bilersiňiz we islendik enjamda aňsatlyk bilen işledip bilersiňiz. Bu diňe bir hyzmatdaşlygy güýçlendirmek bilen çäklenmän, daşky gurşawy sazlamak we utgaşyklyk bilen baglanyşykly meseleleri hem ýeňilleşdirýär.