Anda mungkin tertanya-tanya apa itu DOCKERIZE . Ini bermakna menggunakan Docker untuk menyimpan projek dApp anda.
Docker ialah platform terbuka untuk membangunkan, menghantar dan menjalankan aplikasi. Docker membolehkan anda memisahkan aplikasi anda daripada infrastruktur anda supaya anda boleh menghantar perisian dengan cepat.
Docker membenarkan anda membungkus dan menjalankan aplikasi anda sebagai satu entiti dalam persekitaran terpencil yang dikenali sebagai CONTAINER.
Bekas adalah ringan dan mengandungi semua yang diperlukan untuk menjalankan aplikasi, jadi anda tidak perlu bergantung pada apa yang dipasang pada hos. Anda boleh berkongsi bekas semasa anda bekerja dan pastikan semua orang yang anda kongsi mendapat bekas yang sama yang berfungsi dengan cara yang sama.
Contohnya, anda dan rakan sekerja anda sedang mengusahakan projek dApp yang menggunakan Node.js dan Hardhat. Pada mulanya, anda menyediakan projek pada mesin tempatan anda, dengan mengetahui bahawa sebelum rakan sekerja anda boleh menjalankan aplikasi secara tempatan, mereka perlu memasang Node.js dan Hardhat pada sistem mereka. Sekarang, mari bayangkan salah seorang rakan sekerja anda menggunakan mesin yang tidak serasi dengan Node.js dan Hardhat. Bagaimana anda akan menyelesaikan masalah ini?
Dengan Docker, anda boleh membungkus aplikasi anda, bersama-sama dengan semua kebergantungannya, ke dalam satu bekas yang boleh dijalankan pada mana-mana sistem pengendalian. Ini menyelesaikan isu memasang perisian atau kebergantungan secara berasingan pada mesin yang berbeza.
Selepas anda menyimpan aplikasi anda, bagaimanakah anda boleh menjalankannya?
Sebagai pembangun bahagian hadapan, apabila memulakan apl React baharu, anda biasanya menjalankan npx create-react-app
atau npm init vite@latest
. Untuk projek sedia ada, anda biasanya akan menjalankan git pull
diikuti dengan npm install
untuk menjalankannya secara setempat. Begitu juga, untuk menjalankan bekas, anda memerlukan sesuatu yang dipanggil imej bekas .
Imej bekas ialah pakej piawai yang merangkumi semua fail, binari, perpustakaan dan konfigurasi yang diperlukan untuk menjalankan aplikasi anda di dalam bekas. Ia seperti mempunyai segala-galanya disatukan supaya ia boleh berjalan secara konsisten merentasi mana-mana persekitaran.
Lihat di bawah untuk imej bekas:
Dalam bahagian ini, anda akan belajar cara menyimpan dan berkongsi apl anda.
Dalam direktori root anda, mulakan docker menggunakan command prompt ini:
docker init
Berikan jawapan kepada gesaan
? 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
Anda akan melihat tiga fail tambahan dalam direktori anda, iaitu .dockerignore
, compose.yaml
dan DockerFile
Dockerfil
: Dockerfile ialah dokumen teks yang mengandungi semua arahan yang boleh dipanggil oleh pengguna pada baris arahan untuk memasang imej.compose.yaml
: Fail Karang, atau fail compose.yaml
mengikut peraturan yang disediakan oleh Spesifikasi Karang dalam cara mentakrifkan aplikasi multi -bekas..dockerignore
: Fail ini mengecualikan fail dan direktori daripada konteks binaan. Di dalam Dockerfile
, kosongkan fail dan tambah yang berikut:
# 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"]
Bina imej bekas anda menggunakan ini:
docker build -t <your-image-name> .
Untuk melihat imej bekas anda, pergi ke desktop docker anda, klik pada Images
, seperti yang ditunjukkan di bawah
atau anda boleh menggunakan command prompt ini,
docker images
untuk melihat imej bekas anda dalam terminal anda
Jalankan imej:
docker run -p 5173:5173 <your-image-name>
Anda sepatutnya melihat output seperti ini:
> [email protected] dev > vite VITE v5.4.2 ready in 222 ms ➜ Local: http://localhost:5173/ ➜ Network: http://172.17.0.2:5173/
Daftar atau Log masuk ke Docker Hub.
Pilih butang Cipta Repositori .
Namakan repositori anda dengan nama imej bekas yang sama. Pastikan Keterlihatan adalah Umum .
Pilih Buat .
Log masuk ke Docker Hub menggunakan baris arahan
docker login -u <YOUR USERNAME>
Masukkan Kata Laluan anda
Kata laluan anda tidak akan kelihatan semasa menaip
Gunakan arahan docker tag
untuk memberikan imej getting-started
nama baharu. Gantikan YOUR-USER-NAME
dengan ID Docker anda:
Anda mungkin menghadapi ini
denied: requested access to the resource is denied
semasa menolak.Untuk membetulkan ini,
- log masuk semula menggunakan
docker login
, tekan enter.- Selepas itu, anda akan dilayari ke penyemak imbas anda,
- salin OTP terminal anda dan masukkannya,
- tekan CONFIRM
- menolak imej itu
Anda akan melihat output seperti:
Ini menunjukkan imej anda telah dibina dan ditolak ke dalam pendaftaran. Pasukan anda kini boleh menarik imej ini dan menjalankan aplikasi pada mesin tempatan mereka.
Anda boleh menyemak dengan mencari imej kontena anda pada bar carian pada desktop docker atau hab docker anda.
Konflik Pelabuhan :
Ralat : jika port telah digunakan.
Penyelesaian : Mengenal pasti proses menggunakan port dan menamatkannya menggunakan arahan berikut:
# 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>
Sebagai alternatif, anda boleh menjalankan bekas Docker pada port yang berbeza:
docker run -p 8001:8000 <your-image-name>
Kemas kini Aplikasi
Apa-apa sahaja yang anda kemas kini apl anda contohnya anda menukar sintaks atau fungsi,
Hentikan desktop docker anda, klik pada Containers
Hentikan port dan klik pada padam
Bina semula Aplikasi menggunakan arahan docker build
docker build -t <your-image-name> .
Jalankan semula apl
docker run -p 5173:5173 <your-image-name>
Dengan mengikuti panduan ini, anda boleh membungkus aplikasi anda dan kebergantungannya dengan mudah ke dalam bekas, berkongsi dengan pasukan anda dan menjalankannya dengan mudah pada mana-mana mesin. Ini bukan sahaja meningkatkan kerjasama tetapi juga mengurangkan isu yang berkaitan dengan persediaan dan keserasian persekitaran.