ምን እንደሆነ እያሰቡ ይሆናል። ይህም ማለት የእርስዎን dApp ፕሮጀክት ወደ መያዣ ለማስገባት መጠቀም ማለት ነው። DOCKERIZE Dockerን ዶከር መተግበሪያዎችን ለማዳበር፣ ለመላክ እና ለማሄድ ክፍት መድረክ ነው። ዶከር ሶፍትዌሮችን በፍጥነት ለማድረስ እንዲለዩ ያስችልዎታል። መተግበሪያዎችዎን ከመሠረተ ልማትዎ የድር መተግበሪያዎችን፣ ኤፒአይዎችን፣ የሞባይል መተግበሪያዎችን እና የድጋፍ አገልግሎቶችን ያካትታሉ። እርስዎ የሚጽፉትን ኮድ፣ የሚጠቀሙባቸውን ቤተ-መጻሕፍት እና እንዲሠራ የሚያስፈልጉትን ውቅሮች ያካትታል። አፕሊኬሽኖች እንደ ኦፕሬቲንግ ሲስተም(ኦኤስ)፣ የአውታረ መረብ መቼት፣ የድር አገልጋዮች፣ የውሂብ ጎታ እና ሌሎች የእርስዎ መተግበሪያ መስተጋብር የሚፈጥር መሠረተ ልማት። እንዲሁም መተግበሪያዎ የሚሰራባቸውን ሃርድዌር ወይም ምናባዊ ማሽኖችን ያካትታል። Docker ማመልከቻዎን እንደ አንድ አካል አድርገው ኮንቴይነሮች በሚባል ገለልተኛ ገለልተኛ አካባቢ ውስጥ እንዲያሽጉ እና እንዲያሄዱ ይፈቅድልዎታል። መያዣ ኮንቴይነሮች ክብደታቸው ቀላል እና አፕሊኬሽኑን ለማስኬድ የሚያስፈልጉትን ነገሮች ሁሉ ይዘዋል፣ ስለዚህ በአስተናጋጁ ላይ በተጫነው ላይ መተማመን አያስፈልግዎትም። በሚሰሩበት ጊዜ ኮንቴይነሮችን ማጋራት ይችላሉ፣ እና የሚያጋሩት እያንዳንዱ ሰው በተመሳሳይ መንገድ የሚሰራ አንድ አይነት መያዣ ማግኘቱን ያረጋግጡ። ለምሳሌ፣ እርስዎ እና የስራ ባልደረቦችዎ Node.js እና Hardhat በሚጠቀም የdApp ፕሮጀክት ላይ እየሰሩ ነው። መጀመሪያ ላይ ባልደረቦችዎ መተግበሪያውን በአገር ውስጥ ከማስኬዳቸው በፊት Node.js እና Hardhat በስርዓታቸው ላይ መጫን እንዳለባቸው አውቀው ፕሮጀክቱን በአከባቢዎ ማሽን ላይ አዋቅረዋል። አሁን፣ ከስራ ባልደረቦችህ አንዱ ከNode.js እና Hardhat ጋር ተኳሃኝ ያልሆነ ማሽን እየተጠቀመ እንደሆነ እናስብ። ይህን ችግር እንዴት መፍታት ይቻላል? በDocker መተግበሪያዎን ከሁሉም ጥገኞች ጋር በማሸግ በማንኛውም ኦፕሬቲንግ ሲስተም ላይ ሊሰራ ወደሚችል ነጠላ መያዣ ማሸግ ይችላሉ። ይህ በተለያዩ ማሽኖች ላይ ሶፍትዌሮችን ወይም ጥገኛዎችን የመጫን ችግርን ይፈታል. ምስሎች ማመልከቻዎን ወደ ኮንቴይነር ካስገቡት በኋላ እንዴት እንዲሰራ ያደርጉታል? እንደ የፊት ግንባር ገንቢ፣ አዲስ React መተግበሪያን ሲጀምሩ አብዛኛው ጊዜ ወይም ያሂዳሉ። ለነባር ፕሮጀክት፣ በአገር ውስጥ ለማስኬድ በተለምዶ በመቀጠል ያስኬዳል። በተመሳሳይ, መያዣን ለማስኬድ, የሚባል ነገር ያስፈልግዎታል . npx create-react-app npm init vite@latest git pull npm install መያዣ ምስል የመያዣ ምስል ሁሉንም ፋይሎች፣ ሁለትዮሽ፣ ቤተ-መጻሕፍት እና አወቃቀሮችን ያካተተ ደረጃውን የጠበቀ ጥቅል ነው። በማንኛውም አካባቢ ያለማቋረጥ እንዲሄድ ሁሉንም ነገር አንድ ላይ እንደማያያዝ ነው። የመያዣ ምስል ለማግኘት ከዚህ በታች ይመልከቱ፡- ተግባራዊ በዚህ ክፍል ውስጥ መተግበሪያዎን እንዴት ማጠራቀም እና ማጋራት እንደሚችሉ ይማራሉ. ቅድመ-ሁኔታዎች የቅርብ ጊዜውን ስሪት ጭነዋል። የዶከር ዴስክቶፕ ጭነዋል። የጊት ደንበኛን ፋይሎችን ለማርትዕ IDE ወይም የጽሑፍ አርታኢ አለህ። ዶከር ቪዥዋል ስቱዲዮ ሲ ኦድ መጠቀምን ይመክራል። ማመልከቻዎን ወደ ውስጥ ያስገቡ በስር ማውጫዎ ውስጥ፣ ይህን የትእዛዝ ጥያቄ በመጠቀም ዶከርን ያስጀምሩ፡- docker init ለጥያቄዎች መልስ ይስጡ ? 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 በማውጫዎ ውስጥ ሶስት ተጨማሪ ፋይሎችን ያያሉ እነሱም , እና .dockerignore compose.yaml DockerFile : Dockerfile አንድ ተጠቃሚ በትእዛዝ መስመሩ ላይ ምስሎችን ለመሰብሰብ የሚጠራቸውን ሁሉንም ትዕዛዞች የያዘ የጽሑፍ ሰነድ ነው። Dockerfil : የጽሑፍ ፋይል ወይም ፋይል የተሰጡትን ደንቦች ይከተላል። compose.yaml compose.yaml የmul ti-container አፕሊኬሽኖችን እንዴት እንደሚገልጹ በ Compose Specification : ይህ ፋይል ፋይሎችን እና ማውጫዎችን ከግንባታ አውድ አያካትትም። .dockerignore በ ውስጥ ፋይሉን ያጽዱ እና የሚከተለውን ያክሉ። 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"] ይህንን በመጠቀም የመያዣ ምስልዎን ይገንቡ፡- docker build -t <your-image-name> . የመያዣ ምስልዎን ለማየት ወደ ዶከር ዴስክቶፕዎ ይሂዱ፣ ላይ ጠቅ ያድርጉ፣ ከታች እንደሚታየው Images ወይም ይህንን የትእዛዝ ጥያቄ መጠቀም ይችላሉ ፣ docker images የመያዣ ምስልዎን በተርሚናልዎ ውስጥ ለማየት ምስሉን አሂድ: docker run -p 5173:5173 <your-image-name> እንደዚህ አይነት ውፅዓት ማየት አለብህ። > 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/ ማመልከቻውን ማጋራት ወይም ወደ ይመዝገቡ Docker Hub ይግቡ። ቁልፍን ይምረጡ። የማጠራቀሚያ ፍጠር የእርስዎን ማከማቻ በተመሳሳዩ የመያዣ ምስል ስም ይሰይሙ። መሆኑን ያረጋግጡ። ታይነቱ ይፋዊ ይምረጡ። ፍጠርን የትእዛዝ መስመሩን በመጠቀም ወደ Docker Hub ይግቡ docker login -u <YOUR USERNAME> የይለፍ ቃልዎን ያስገቡ በሚተይቡበት ጊዜ የይለፍ ቃልዎ አይታይም። ምስል አዲስ ስም ለመስጠት ትዕዛዙን ይጠቀሙ። በ Docker መታወቂያዎ ይተኩ፡- getting-started docker tag YOUR-USER-NAME ይህ ። denied: requested access to the resource is denied ይህንን ለማስተካከል፣ በመጠቀም እንደገና ይግቡ ፣ አስገባን ይጫኑ። docker login ከዚያ በኋላ ወደ አሳሽዎ ይሂዱ ፣ የእርስዎን ተርሚናል ይቅዱ እና ያስገቡት፣ OTP ይጫኑ አረጋግጥን ምስሉን እንደገና ይግፉት እንደዚህ ያለ ውፅዓት ታያለህ፡- ይህ የሚያሳየው የእርስዎ ምስል ተገንብቶ ወደ መዝገብ ቤት መገፋቱን ነው። ቡድንዎ አሁን ይህንን ምስል በመሳብ መተግበሪያውን በአካባቢያቸው ማሽን ላይ ማስኬድ ይችላል። የመያዣ ምስልዎን በመትከያ ላይ ባለው የፍለጋ አሞሌ ላይ በመፈለግ ማረጋገጥ ይችላሉ። ዴስክቶፕዎ መላ መፈለግ ; የወደብ ግጭት ፡ ወደቡ አስቀድሞ ስራ ላይ ከዋለ። ስህተት ፡ ወደቡን በመጠቀም ሂደቱን ለይተው የሚከተሉትን ትዕዛዞች በመጠቀም አቋርጠውታል። መፍትሄ # 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 run -p 8001:8000 <your-image-name> መተግበሪያ ያዘምኑ መተግበሪያዎን የሚያዘምኑት ማንኛውም ነገር ለምሳሌ አገባብ ወይም ተግባር ይለውጣሉ፣ ዶከር ዴስክቶፕዎን ያቁሙ፣ ላይ ጠቅ ያድርጉ Containers ወደቡን ያቁሙ እና ሰርዝ ላይ ጠቅ ያድርጉ ትዕዛዙን በመጠቀም መተግበሪያውን እንደገና ይገንቡ docker build docker build -t <your-image-name> . መተግበሪያውን እንደገና ያስጀምሩ docker run -p 5173:5173 <your-image-name> ማጠቃለያ ይህንን መመሪያ በመከተል መተግበሪያዎን እና ጥገኞቹን በቀላሉ ወደ መያዣ ማሸግ፣ ከቡድንዎ ጋር መጋራት እና በማንኛውም ማሽን ላይ በቀላሉ ማስኬድ ይችላሉ። ይህ ትብብርን ብቻ ሳይሆን ከአካባቢ ቅንብር እና ተኳኋኝነት ጋር የተያያዙ ጉዳዮችን ይቀንሳል.