EN: Read in English
Dunia C2: Pipeline Container
Lint dengan hadolint dan actionlint
Anda akan belajar: biar robot semak resipi dan workflow anda.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Bulan lepas node:latest lompat satu versi, dan kedai rosak semalaman. linter: Robot penyemak. Ia cari kesilapan dan tabiat berisiko dalam fail sebelum fail itu dijalankan. (robot penyemak) dah boleh beri amaran. Maksudnya: tetapkan versi, contohnya node:24-alpine.
Teka
Dockerfile anda masih tulis FROM node:latest. Ketik stesen yang akan hentikan talian, kemudian tekan Run.
Stesen mana akan hentikan tali sawat? Tekan stesen itu, kemudian Run.
Fail workflow .github/workflows/lint.yml
name: Lint on: pull_request: permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: hadolint/hadolint-action@v3.1.0 with: dockerfile: Dockerfile - name: Lint workflows run: docker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.12
Tali sawat
Pull request · feature → main
Tengok
actionlint semak fail workflow. Ia tangkap salah taip sebelum GitHub: imgae. Image rasminya jalan tanpa perlu pasang apa-apa.
Cuba
Robot mana tangkap kesilapan mana?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Semak
Di mana job lint patut duduk di tali sawat?
Pilih satu jawapan.
Anda berjaya!
Kini anda boleh biar hadolint dan actionlint semak setiap PR.
Nak tahu lebih (pilihan)
hadolint juga semak shell dalam baris RUN, dengan ShellCheck. Untuk langkau satu peraturan, letak # hadolint ignore=DL3007 di atas baris itu. Buat hanya bila ada sebab kukuh. actionlint juga semak skrip run:, bila ShellCheck dipasang.
Latihan sebenar (pilihan), di mesin anda dengan Docker:
Misi sebenar
docker run --rm -i hadolint/hadolint:v2.14.0 < Dockerfiledocker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.12
0 daripada 3 langkah siap · Tanda anda disimpan.
English
Last month node:latest jumped a version, and the shop broke overnight. A linter would have warned you. Plain words: pin a version, like node:24-alpine.
Your Dockerfile still says FROM node:latest. Tap the station that will stop the line, then press Run.
actionlint proofreads workflow files. It caught a typo before GitHub did: imgae. The official image runs it with no install.
Which robot catches which mistake?
Where should the lint job sit on the belt?
You can now let hadolint and actionlint proofread every PR.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: hadolint · actionlint · Docker docs: Dockerfile best practices
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?