paint-brush
დამწყებთათვის გზამკვლევი Vite dApp პროექტის დოკერიზაციისთვისმიერ@ileolami
674 საკითხავი
674 საკითხავი

დამწყებთათვის გზამკვლევი Vite dApp პროექტის დოკერიზაციისთვის

მიერ Ileolami6m2024/09/24
Read on Terminal Reader

Ძალიან გრძელი; Წაკითხვა

Docker არის ღია პლატფორმა აპლიკაციების განვითარების, გადაზიდვისა და გაშვებისთვის. Docker საშუალებას გაძლევთ შეფუთოთ და გაუშვათ თქვენი აპლიკაცია, როგორც ერთი ერთეული, თავისუფლად იზოლირებულ გარემოში, რომელსაც ეწოდება **CONTAINER. კონტეინერები მსუბუქი წონაა და შეიცავს ყველაფერს, რაც საჭიროა აპლიკაციის გასაშვებად. თქვენ შეგიძლიათ გააზიაროთ კონტეინერები მუშაობის დროს და დარწმუნებული იყავით, რომ ყველა, ვისთანაც აზიარებთ, მიიღებს იმავე კონტეინერს, რომელიც მუშაობს ერთნაირად.
featured image - დამწყებთათვის გზამკვლევი Vite dApp პროექტის დოკერიზაციისთვის
Ileolami HackerNoon profile picture
0-item


შეიძლება გაინტერესებთ რა არის DOCKERIZE . ეს ნიშნავს Docker-ის გამოყენებას თქვენი dApp პროექტის კონტეინერიზაციისთვის.

Docker არის ღია პლატფორმა აპლიკაციების განვითარების, გადაზიდვისა და გაშვებისთვის. Docker გაძლევთ საშუალებას გამოყოთ თქვენი აპლიკაციები თქვენი ინფრასტრუქტურისგან , რათა შეძლოთ პროგრამული უზრუნველყოფის სწრაფად მიწოდება.

  • აპლიკაციებში შედის ვებ აპები, API-ები, მობილური აპლიკაციები და სარეზერვო სერვისები. ის შეიცავს თქვენს მიერ დაწერილ კოდს, თქვენს მიერ გამოყენებულ ბიბლიოთეკებს და მის გასაშვებად საჭირო კონფიგურაციებს.
  • ინფრასტრუქტურა, როგორიცაა ოპერაციული სისტემა (OS), ქსელის პარამეტრი, ვებ სერვერები, მონაცემთა ბაზა და სხვა სერვისები, რომლებთანაც თქვენი აპლიკაცია ურთიერთქმედებს. ის ასევე მოიცავს აპარატურას ან ვირტუალურ მანქანებს, სადაც თქვენი აპლიკაცია მუშაობს.

Docker გაძლევთ საშუალებას შეფუთოთ და გაუშვათ თქვენი აპლიკაცია, როგორც ერთი ერთეული, თავისუფლად იზოლირებულ გარემოში, რომელსაც ეწოდება CONTAINER.

კონტეინერი

კონტეინერები მსუბუქი წონაა და შეიცავს ყველაფერს, რაც საჭიროა აპლიკაციის გასაშვებად, ასე რომ თქვენ არ გჭირდებათ დაეყრდნოთ მას, რაც დაინსტალირებულია ჰოსტზე. თქვენ შეგიძლიათ გააზიაროთ კონტეინერები მუშაობის დროს და დარწმუნებული იყავით, რომ ყველა, ვისაც აზიარებთ, მიიღებს იმავე კონტეინერს, რომელიც მუშაობს ერთნაირად.

მაგალითად, თქვენ და თქვენი კოლეგები მუშაობთ dApp პროექტზე, რომელიც იყენებს Node.js-ს და Hardhat-ს. თავდაპირველად, თქვენ დააყენეთ პროექტი თქვენს ადგილობრივ აპარატზე, რადგან იცით, რომ სანამ თქვენს კოლეგებს შეძლებენ აპლიკაციის ლოკალურად გაშვებას, მათ უნდა დააინსტალირონ Node.js და Hardhat მათ სისტემებზე. ახლა, წარმოვიდგინოთ, რომ თქვენი ერთ-ერთი კოლეგა იყენებს მოწყობილობას, რომელიც არ არის თავსებადი Node.js-თან და Hardhat-თან. როგორ მოაგვარებდით ამ პრობლემას?

Docker-ით შეგიძლიათ შეფუთოთ თქვენი აპლიკაცია, ყველა მის დამოკიდებულებასთან ერთად, ერთ კონტეინერში, რომელიც ნებისმიერ ოპერაციულ სისტემაზე მუშაობს. ეს წყვეტს პროგრამული უზრუნველყოფის ან დამოკიდებულების ცალკე დაყენების საკითხს სხვადასხვა მანქანებზე.

სურათები

მას შემდეგ, რაც კონტეინერში მოათავსებთ თქვენს აპლიკაციას, როგორ უნდა გაუშვათ იგი?

როგორც ფრონტენდის დეველოპერი, ახალი React აპლიკაციის დაწყებისას, ჩვეულებრივ აწარმოებთ npx create-react-app ან npm init vite@latest . არსებული პროექტისთვის, ჩვეულებრივ, გაუშვით git pull , რასაც მოჰყვება npm install , რათა ის ადგილობრივად იმუშაოს. ანალოგიურად, კონტეინერის გასაშვებად გჭირდებათ რაღაც სახელწოდებით კონტეინერის სურათი .

კონტეინერის სურათი არის სტანდარტიზებული პაკეტი, რომელიც მოიცავს ყველა ფაილს, ბინაარს, ბიბლიოთეკას და კონფიგურაციას, რომელიც საჭიროა თქვენი აპლიკაციის კონტეინერში გასაშვებად. თითქოს ყველაფერი ერთად გქონდეს შეფუთული, რათა ის მუდმივად იმუშაოს ნებისმიერ გარემოში.

იხილეთ ქვემოთ კონტეინერის სურათი:

Docker გამოსახულების მართვის ინტერფეისის სკრინშოტი სახელწოდებით "web3-dapp: უახლესი".

პრაქტიკული

ამ განყოფილებაში თქვენ შეისწავლით თუ როგორ მოაწყოთ კონტეინერი და გააზიაროთ თქვენი აპლიკაცია.

წინაპირობები

  1. თქვენ დააინსტალირეთ Docker Desktop- ის უახლესი ვერსია.
  2. თქვენ დააინსტალირეთ Git კლიენტი .
  3. თქვენ გაქვთ IDE ან ტექსტური რედაქტორი ფაილების რედაქტირებისთვის. Docker გირჩევთ გამოიყენოთ Visual Studio C ode.

თქვენი განაცხადის კონტეინერი

  1. თქვენს root დირექტორიაში, დააყენეთ დოკერის ინიციალიზაცია ამ ბრძანების ხაზის გამოყენებით:

     docker init
  2. მიეცით პასუხები მოთხოვნებზე

     ? 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. თქვენს დირექტორიაში ნახავთ სამ დამატებით ფაილს, კერძოდ .dockerignore , compose.yaml და DockerFile

  • Dockerfil : Dockerfile არის ტექსტური დოკუმენტი, რომელიც შეიცავს ყველა იმ ბრძანებას, რომელიც მომხმარებელს შეუძლია გამოიძახოს ბრძანების სტრიქონზე გამოსახულების ასაწყობად.
  • compose.yaml : Compose ფაილი, ან compose.yaml ფაილი მიჰყვება Compose Specification-ში მოწოდებულ წესებს, თუ როგორ უნდა განისაზღვროს multi -container აპლიკაციები.
  • .dockerignore : ეს ფაილი გამორიცხავს ფაილებსა და დირექტორიებს build-ის კონტექსტიდან.
  1. 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"]
  2. შექმენით თქვენი კონტეინერის სურათი ამ გამოყენებით:

     docker build -t <your-image-name> .
  3. თქვენი კონტეინერის სურათის სანახავად, გადადით თქვენს დოკერის სამუშაო მაგიდაზე, დააწკაპუნეთ Images , როგორც ნაჩვენებია ქვემოთ

    ან შეგიძლიათ გამოიყენოთ ეს ბრძანების სტრიქონი,

     docker images
  4. თქვენი კონტეინერის სურათის სანახავად თქვენს ტერმინალში

    ტერმინალის ფანჯრის სკრინშოტი, რომელიც აჩვენებს "დოკერ სურათების" ბრძანების გამომავალს

  5. გაუშვით სურათი:

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

თქვენ უნდა ნახოთ ასეთი გამომავალი:

 > [email protected] dev > vite VITE v5.4.2 ready in 222 ms ➜ Local: http://localhost:5173/ ➜ Network: http://172.17.0.2:5173/

აპლიკაციის გაზიარება

  1. დარეგისტრირდით ან შედით Docker Hub-ში.

  2. აირჩიეთ ღილაკი საცავის შექმნა .

  3. დაასახელეთ თქვენი საცავი იმავე კონტეინერის სურათის სახელით. დარწმუნდით, რომ ხილვადობა არის საჯარო .

  4. აირჩიეთ შექმნა .

  1. შედით Docker Hub-ში ბრძანების ხაზის გამოყენებით

     docker login -u <YOUR USERNAME>
  2. შეიყვანეთ თქვენი პაროლი

    თქვენი პაროლი არ ჩანს აკრეფისას

  3. გამოიყენეთ docker tag ბრძანება, რათა getting-started სურათს ახალი სახელი მიანიჭოთ. შეცვალეთ YOUR-USER-NAME თქვენი Docker ID-ით:

    თქვენ შეიძლება შეგხვდეთ ეს denied: requested access to the resource is denied დაწკაპუნებისას.

    ამის გამოსასწორებლად,

    1. ხელახლა შესვლა docker login გამოყენებით, დააჭირეთ Enter.
    2. ამის შემდეგ, თქვენ გადახვალთ თქვენს ბრაუზერში,
    3. დააკოპირეთ თქვენი OTP ტერმინალი და შეიყვანეთ იგი,
    4. დააჭირეთ CONFIRM
    5. გამოსახულების მოხსნა

    თქვენ ნახავთ გამომავალს, როგორიცაა:

ეს აჩვენებს, რომ თქვენი სურათი აშენდა და შევიდა რეესტრში. თქვენს გუნდს ახლა შეუძლია ამ სურათის ამოღება და აპლიკაციის გაშვება ადგილობრივ აპარატზე.

შეგიძლიათ შეამოწმოთ თქვენი კონტეინერის გამოსახულების ძიებით თქვენი დოკერის დესკტოპის ან დოკერ ჰაბის საძიებო ზოლში.

პრობლემების მოგვარება

  • პორტის კონფლიქტი :

    • შეცდომა : თუ პორტი უკვე გამოყენებული იყო.

    • გამოსავალი : დაადგინა პროცესი პორტის გამოყენებით და შეწყვიტა იგი შემდეგი ბრძანებების გამოყენებით:

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

    • ალტერნატიულად, შეგიძლიათ Docker კონტეინერის გაშვება სხვა პორტზე:

       docker run -p 8001:8000 <your-image-name>
  • განაახლეთ აპლიკაცია

    ნებისმიერი რამ, რასაც განაახლებთ თქვენს აპს, მაგალითად, შეცვლით სინტაქსს ან ფუნქციას,

    1. გააჩერეთ თქვენი დოკერის სამუშაო მაგიდა, დააწკაპუნეთ Containers

    2. გააჩერეთ პორტი და დააჭირეთ წაშლას

    3. განაახლეთ აპლიკაცია docker build ბრძანების გამოყენებით

       docker build -t <your-image-name> .
    4. ხელახლა გაუშვით აპლიკაცია

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


დასკვნა

ამ სახელმძღვანელოს მიყოლებით, შეგიძლიათ მარტივად შეფუთოთ თქვენი აპლიკაცია და მისი დამოკიდებულებები კონტეინერში, გაუზიაროთ იგი თქვენს გუნდს და მარტივად გაუშვათ იგი ნებისმიერ მოწყობილობაზე. ეს არა მხოლოდ აძლიერებს თანამშრომლობას, არამედ ამცირებს გარემოს დაყენებასა და თავსებადობასთან დაკავშირებულ საკითხებს.