paint-brush
“Vite dApp” taslamasyny dokerlemek üçin başlangyç gollanmatarapyndan@ileolami
631 oka
631 oka

“Vite dApp” taslamasyny dokerlemek üçin başlangyç gollanma

tarapyndan Ileolami6m2024/09/24
Read on Terminal Reader

Örän uzyn; Okamak

Docker, programmalary işläp düzmek, ibermek we işletmek üçin açyk platforma. Docker, ** CONTAINER diýilýän gaty izolirlenen gurşawda ýekeje programma hökmünde programmaňyzy gaplamaga we işletmäge mümkinçilik berýär. Konteýnerler ýeňil we programmany işletmek üçin zerur zatlary öz içine alýar. 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ň.
featured image - “Vite dApp” taslamasyny dokerlemek üçin başlangyç gollanma
Ileolami HackerNoon profile picture
0-item


DOKKERIZE nämedigi bilen gyzyklanyp bilersiňiz. DApp proýektiňizi konteýnerlemek üçin Docker-i ulanmagy aňladýar.

Docker, programmalary ösdürmek, ibermek we işletmek üçin açyk platforma. Docker programma üpjünçiligini çalt üpjün edip bilersiňiz, programmalaryňyzy infrastrukturaňyzdan aýyrmaga mümkinçilik berýär.

  • Goýmalarda 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.
  • 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 npx create-react-app ýa-da npm init vite@latest işleýärsiňiz. Bar bolan taslama üçin, adatça ýerli görnüşde işlemek üçin git pull soň npm install bilen işledersiňiz. Şonuň ýaly-da, konteýner işletmek üçin konteýner şekili diýilýän zat gerek.

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ň:

"Web3-dapp: iň soňky" atly Docker şekil dolandyryş interfeýsiniň skrinshoty.

Amallar

Bu bölümde programmaňyzy konteýnerleşdirmegi we paýlaşmagy öwrenersiňiz.

Zerur şertler

  1. Docker Desktop -yň iň soňky wersiýasyny gurnadyňyz.
  2. Git müşderisini gurduň.
  3. Faýllary redaktirlemek üçin IDE ýa-da tekst redaktory bar. Docker Visual Studio C ode ulanmagy maslahat berýär.

Arzaňyzy saklaň

  1. Kök katalogyňyzda bu buýruk buýrugyny ulanyp dokeri işe giriziň:

     docker init
  2. 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
  3. Katalogyňyzda .dockerignore , compose.yaml we DockerFile atly üç sany goşmaça faýly görersiňiz

  • Dockerfil : Dockerfile, ulanyjynyň şekil ýygnamak üçin buýruk setirine çagyryp biljek ähli buýruklaryny öz içine alýan tekst resminamasydyr.
  • compose.yaml : “Compose” faýly ýa-da compose.yaml faýly, “konteýner” programmalaryny nädip kesgitlemelidigi barada “Compose” spesifikasiýasy tarapyndan göz öňünde tutulan düzgünlere eýerýär.
  • .dockerignore : Bu faýl gurluş we kontekstdäki faýllary we kataloglary aýyrýar.
  1. Dockerfile iň içinde faýly aýyryň we aşakdakylary goşuň:

     # 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"]
  2. Konteýner şekiliňizi şuny ulanyp guruň:

     docker build -t <your-image-name> .
  3. Konteýner şekiliňizi görmek üçin dok iş stoluňyza giriň, aşakda görkezilişi ýaly Images basyň

    ýa-da bu buýruk buýrugyny ulanyp bilersiňiz,

     docker images
  4. konteýner şekiliňizi terminalyňyzda görmek üçin

    "Doker şekilleri" buýrugynyň çykyşyny görkezýän terminal penjiräniň skrinshoty

  5. Suraty işlediň:

     docker run -p 5173:5173 <your-image-name>

Munuň ýaly çykyşy görmeli:

 > [email protected] 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

  1. Docker Hub-a giriň ýa-da giriň .

  2. Ammar döretmek düwmesini saýlaň.

  3. Ammaryňyzy şol bir konteýner şekiliniň ady bilen atlandyryň. Görünýänligiň köpçülige göz ýetiriň.

  4. Dörediň .

  1. Buýruk setirini ulanyp, Docker Hub-a giriň

     docker login -u <YOUR USERNAME>
  2. Parolyňyzy giriziň

    Typazanyňyzda parolyňyz görünmez

  3. getting-started surata täze at bermek üçin docker tag buýrugyny ulanyň. YOUR-USER-NAME Docker ID bilen çalyşyň:

    Bu denied: requested access to the resource is denied .

    Muny düzetmek üçin,

    1. docker login ulanyp, enter basyň.
    2. Ondan soň brauzeriňize ugrukdyrylarsyňyz,
    3. OTP terminalyňyzy göçüriň we giriziň,
    4. CONFIRM basyň
    5. ş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 dok merkezindäki gözleg panelinde gözläp bilersiňiz.

Näsazlyklary düzeltmek

  • Port dawasy :

    • Roralňyşlyk : port eýýäm ulanylan bolsa.

    • Çözgüt : Porty ulanyp, prosesi kesgitledi we aşakdaky buýruklary ulanyp bes etdi:

       # 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,

    1. Doker stoluňyzy saklaň, Containers basyň

    2. Porty duruzyň we ýok etmek düwmesine basyň

    3. docker build buýrugyny ulanyp, Programmany täzeden guruň

       docker build -t <your-image-name> .
    4. 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.