EN: Read in English
Dunia C2: Pipeline Container
Jalankan ujian dalam container
Anda akan belajar: uji rasa bekas makanan yang sama yang pelanggan anda dapat.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Ujian lulus di runner. Kemudian image itu rosak di production: satu pustaka sistem tiada. Macam mana tali sawat boleh tangkap masalah itu?
Pilih satu jawapan.
Tengok
Ketik baris di mana peringkat ujian bermula.
0 daripada 1 dijumpai
Satu resipi, dua hidangan. Peringkat ujian simpan alat ujian. Peringkat app ialah apa yang pelanggan dapat. Kedua-duanya tumbuh dari layer base yang sama.
Cuba
Susun langkah tali sawat ikut urutan.
Yang pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.
- Sediakan Buildx
- Bina peringkat ujian, dan muatkan ke dalam Docker
- Bina peringkat app dan push
- Jalankan npm test di dalam image itu
Teka
Satu ujian gagal di dalam container. Ketik stesen yang akan hentikan talian, kemudian tekan Run.
Stesen mana akan hentikan tali sawat? Tekan stesen itu, kemudian Run.
Fail workflow .github/workflows/test.yml
name: Test on: pull_request: permissions: contents: read jobs: test: runs-on: ubuntu-latest steps: - uses: docker/setup-buildx-action@v4 - uses: docker/build-push-action@v7 with: target: test load: true tags: kedai-kancil:test - run: docker run --rm kedai-kancil:test npm test
Tali sawat
Pull request · feature → main
Semak
Langkah build tulis load: true. Kenapa?
Pilih satu jawapan.
Anda berjaya!
Kini anda boleh jalankan ujian di dalam image yang anda hantar.
Nak tahu lebih (pilihan)
Cara lain: letak RUN npm test dalam peringkat ujian. Kemudian ujian yang gagal akan gagalkan build itu sendiri. Jauhkan alat ujian dari peringkat app. Image yang dihantar kekal kecil.
Latihan sebenar (pilihan), dalam repo latihan awam:
Misi sebenar
docker build --target test -t myapp:test .docker run --rm myapp:test
0 daripada 4 langkah siap · Tanda anda disimpan.
English
The tests pass on the runner. Then the image crashes in production: a system library is missing. How could the belt catch that?
One recipe, two dishes. The test stage keeps the test tools. The app stage is what customers get. Both grow from the same base layers.
Put the belt’s steps in order.
One test fails inside the container. Tap the station that will stop the line, then press Run.
The build step says load: true. Why?
You can now run your tests inside the image you ship.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Docker docs: test before push with GitHub Actions · Docker docs: multi-stage builds
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?