EN: Read in English
Dunia C2: Pipeline Container
Cache layer dalam CI
Anda akan belajar: simpan lapisan kek lapis antara run, supaya build jadi laju.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Di laptop anda, build semula ambil 10 saat. Di tali sawat, setiap build ambil 4 minit. Kenapa?
Pilih satu jawapan.
Cuba
Walaupun ada cache, resipi ini bakar npm ci semula selepas setiap perubahan kod. Alihkan baris supaya layer (lapisan) itu kekal dalam cache bila src/cart.js berubah.
Setiap baris resepi tambah satu lapisan kek. Susun baris dengan betul, kemudian bina.
Dockerfile (resepi)
FROM node:24-alpineWORKDIR /appCOPY . .COPY package.json package-lock.json ./RUN npm ci --omit=devCMD ["node", "server.js"]
Anda sudah bina sekali. Lepas ini, anda ubah src/cart.js.
Kek (image anda)
CMD ["node", "server.js"]RUN npm ci --omit=devCOPY package.json package-lock.json ./COPY . .WORKDIR /appFROM node:24-alpine
Petunjuk
Salin fail pakej dan pasang dulu. Salin kod paling akhir.Tengok
Ketik baris yang simpan layer hari ini untuk lain kali.
0 daripada 1 dijumpai
cache layer (layer cache): Lapisan kek lapis yang disimpan dari binaan lepas. Lapisan yang tak berubah diguna semula. boleh disimpan dalam cache GitHub Actions. cache-from baca layer lama. cache-to simpan yang baru. mode=max simpan peringkat tengah juga.
Cuba
Tekan Run. Kemudian tekan Run sekali lagi, dan tengok stesen build.
Run dua kali. Tengok run kedua ambil jalan pintas.
Fail workflow .github/workflows/image.yml
name: Image on: push: branches: [main] permissions: contents: read jobs: image: runs-on: ubuntu-latest steps: - uses: docker/setup-buildx-action@v4 - uses: docker/build-push-action@v7 with: tags: kedai-kancil:ci cache-from: type=gha cache-to: type=gha,mode=max
Tali sawat
Push ke main · main
Teka
Sekarang anda tambah satu pakej, jadi package.json berubah. Apa yang dibakar semula di tali sawat?
Pilih satu jawapan.
Semak
Tabiat cache yang bagus? Leret ke kanan untuk ya, ke kiri untuk “perlu dibaiki”.
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
Salin fail pakej dan pasang dulu, sebelum salin kod
Anda berjaya!
Kini anda boleh simpan cache layer antara run.
Nak tahu lebih (pilihan)
GitHub padam cache yang lama tak diguna. Setiap repo juga ada had saiz. type=registry simpan cache dalam GHCR pula. Dua image? Beri setiap satu scope sendiri, contohnya type=gha,scope=api.
Latihan sebenar (pilihan):
Misi sebenar
0 daripada 3 langkah siap · Tanda anda disimpan.
English
On your laptop, a rebuild takes 10 seconds. On the belt, every build takes 4 minutes. Why?
Even with a cache, this recipe bakes npm ci again after every code change. Move the lines so it stays cached when src/cart.js changes.
The layer cache can live in the GitHub Actions cache. cache-from reads old layers. cache-to saves new ones. mode=max keeps middle stages too.
Press Run. Then press Run again, and watch the build station.
Now you add a package, so package.json changes. What bakes again on the belt?
Good cache habit? Swipe right for yes, left for “needs work”.
You can now keep your layer cache between runs.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Docker docs: cache management with GitHub Actions · Docker docs: GitHub Actions cache backend
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?