Hari Kursus Penuh CKA ulti Stage Docker Build

Mary-Kate Olsen
Lepaskan: 2024-10-22 06:19:30
asal
883 orang telah melayarinya

CKA Full Course Day ulti Stage Docker Build

Dalam catatan blog ini, kami akan meneroka Docker dan meneruskan proses mencipta binaan Docker berbilang peringkat dengan aplikasi Nginx yang ringkas. Jika anda baru bermula dengan Docker, jangan risau, saya akan memecahkan segala-galanya langkah demi langkah supaya anda boleh mengikutinya!

Fail Docker

Berikut ialah Dockerfile yang akan kami usahakan:

FROM node:18-alpine AS installer

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

FROM nginx:latest AS deployer

COPY --from=installer /app/build /usr/share/nginx/html
Salin selepas log masuk
Salin selepas log masuk

Membongkar fail Docker

Sekarang, mari kita bongkar apa yang berlaku dalam Fail Docker ini, langkah demi langkah:

1. DARI nod:18-alpine AS pemasang

Barisan ini menarik imej Node.js rasmi (versi 18 pada Alpine Linux) daripada Docker Hub. Fikirkan Docker Hub sebagai perpustakaan imej. Dengan menggunakan baris ini, kami menyatakan bahawa kami ingin menggunakan Node.js sebagai imej asas kami untuk peringkat pertama binaan kami.

2. WORKDIR /app

Arahan ini menetapkan direktori kerja di dalam bekas kepada /app. Anda boleh menganggap ini sebagai mencipta folder khusus untuk aplikasi anda dalam bekas, sama seperti cara anda boleh menyusun fail pada desktop anda.

3. SALINAN pakej*.json ./

Di sini, kami menyalin fail package.json dan package-lock.json daripada direktori tempatan kami ke direktori kerja bekas. Fail ini mengandungi maklumat tentang kebergantungan yang diperlukan oleh aplikasi kami.

4. RUN npm install

Arahan ini menjalankan pemasangan npm, yang memasang semua kebergantungan yang dinyatakan dalam package.json.

5. SALINAN . .

Barisan ini menyalin seluruh fail aplikasi kami ke dalam bekas. Ia membawa segala-galanya daripada direktori tempatan kami ke dalam direktori /app di dalam bekas.

6. RUN npm run build

Kini kami menyusun aplikasi kami menggunakan arahan npm run build. Langkah ini biasanya mengubah kod kami (selalunya React, dalam kes ini) menjadi himpunan statik, sedia untuk disampaikan kepada pengguna. Output arahan ini akan diletakkan dalam direktori binaan dalam /app.

7. DARI nginx:penyerah AS terkini

Dalam baris ini, kami bertukar kepada imej asas baharu: Nginx. Nginx ialah pelayan web berkuasa yang boleh menyediakan fail statik, seperti yang baru kami bina. Ini adalah permulaan peringkat kedua kami dalam proses binaan berbilang peringkat.

8. SALINAN --from=installer /app/build /usr/share/nginx/html

Di sini, kami menyalin fail aplikasi yang dibina dari peringkat sebelumnya (pemasang) ke dalam direktori perkhidmatan Nginx. Bendera --from=installer memberitahu Docker untuk mengambil fail dari peringkat pemasang yang baru kami tentukan.

Menjalankan Bekas Docker Anda

Setelah Fail Docker anda disediakan, anda boleh membina dan menjalankan bekas Docker anda dengan arahan berikut:

FROM node:18-alpine AS installer

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

FROM nginx:latest AS deployer

COPY --from=installer /app/build /usr/share/nginx/html
Salin selepas log masuk
Salin selepas log masuk

Pastikan untuk menggantikan nama-apl anda dengan nama pilihan anda. Bendera -dp akan menanggalkan bekas anda dan memetakan port 3000 pada mesin hos anda kepada port 80 dalam bekas, membolehkan anda mengakses apl anda di http://localhost:3000.

Kesimpulan

Dan begitulah! Anda baru sahaja mencipta binaan Docker berbilang peringkat yang membawa aplikasi anda daripada pembangunan kepada pengeluaran menggunakan Nginx. Jika anda mempunyai sebarang soalan atau pendapat tentang proses tersebut, sila tinggalkan komen di bawah!

Gotchas: Perkara yang Perlu Diperhatikan

Satu gotcha biasa apabila bekerja dengan persediaan ini ialah terlupa untuk memetakan nombor port yang betul. Nginx biasanya mendengar pada port 80 di dalam bekas, tetapi jika anda cuba mengakses aplikasi pada mesin tempatan anda, anda perlu memajukan port yang betul dari bekas ke mesin anda. Contohnya, jika anda ingin mengakses apl pada localhost:3000, anda perlu menjalankan bekas dengan bendera -p 3000:80 untuk memetakan port 3000 pada mesin anda kepada port 80 dalam bekas.

Terlepas langkah ini dan anda akan mendapati diri anda tertanya-tanya mengapa semuanya dibina dengan sempurna tetapi anda tidak dapat mencapai apl dalam penyemak imbas anda!


Tag dan Sebutan

@piyushsachdeva
Video hari ke-3

Atas ialah kandungan terperinci Hari Kursus Penuh CKA ulti Stage Docker Build. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!