Peta dunia

 

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)

  1. FROM node:24-alpine
  2. WORKDIR /app
  3. COPY . .
  4. COPY package.json package-lock.json ./
  5. RUN npm ci --omit=dev
  6. CMD ["node", "server.js"]

Anda sudah bina sekali. Lepas ini, anda ubah src/cart.js.

Kek (image anda)

  1. CMD ["node", "server.js"]0B
  2. RUN npm ci --omit=dev12.8MB
  3. COPY package.json package-lock.json ./53.2kB
  4. COPY . .36.9kB
  5. WORKDIR /app8.19kB
  6. FROM node:24-alpine181MB

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.

Apa yang berlaku di GitHub

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.

1 / 4

Salin fail pakej dan pasang dulu, sebelum salin kod

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.