DOCKERIZE ምን እንደሆነ እያሰቡ ይሆናል። ይህም ማለት የእርስዎን dApp ፕሮጀክት ወደ መያዣ ለማስገባት 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
ያስኬዳል። በተመሳሳይ, መያዣን ለማስኬድ, የሚባል ነገር ያስፈልግዎታል መያዣ ምስል .
የመያዣ ምስል ሁሉንም ፋይሎች፣ ሁለትዮሽ፣ ቤተ-መጻሕፍት እና አወቃቀሮችን ያካተተ ደረጃውን የጠበቀ ጥቅል ነው። በማንኛውም አካባቢ ያለማቋረጥ እንዲሄድ ሁሉንም ነገር አንድ ላይ እንደማያያዝ ነው።
የመያዣ ምስል ለማግኘት ከዚህ በታች ይመልከቱ፡-
በዚህ ክፍል ውስጥ መተግበሪያዎን እንዴት ማጠራቀም እና ማጋራት እንደሚችሉ ይማራሉ.
በስር ማውጫዎ ውስጥ፣ ይህን የትእዛዝ ጥያቄ በመጠቀም ዶከርን ያስጀምሩ፡-
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
Dockerfil
: Dockerfile አንድ ተጠቃሚ በትእዛዝ መስመሩ ላይ ምስሎችን ለመሰብሰብ የሚጠራቸውን ሁሉንም ትዕዛዞች የያዘ የጽሑፍ ሰነድ ነው።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>
እንደዚህ አይነት ውፅዓት ማየት አለብህ።
> [email protected] 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>
የይለፍ ቃልዎን ያስገቡ
በሚተይቡበት ጊዜ የይለፍ ቃልዎ አይታይም።
getting-started
ምስል አዲስ ስም ለመስጠት docker tag
ትዕዛዙን ይጠቀሙ። YOUR-USER-NAME
በ Docker መታወቂያዎ ይተኩ፡-
ይህ
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>
ይህንን መመሪያ በመከተል መተግበሪያዎን እና ጥገኞቹን በቀላሉ ወደ መያዣ ማሸግ፣ ከቡድንዎ ጋር መጋራት እና በማንኛውም ማሽን ላይ በቀላሉ ማስኬድ ይችላሉ። ይህ ትብብርን ብቻ ሳይሆን ከአካባቢ ቅንብር እና ተኳኋኝነት ጋር የተያያዙ ጉዳዮችን ይቀንሳል.