EN: Read in English
Dunia T4: Modul & Pipeline
Misi capstone 8: Pelan Kedai Kancil
Anda akan belajar: tulis kaunter web Kedai Kancil sebagai pelan, binanya di Docker sendiri, dan plan dalam pull request.
Teks BM belum disemak oleh penutur asli.
Disemak dengan OpenTofu 1.13 pada 1 Nov 2026
Masalahnya
Misi 8: tulis kaunter web Kedai Kancil sebagai pelan. Docker di laptop anda sendiri ialah tapak binaan. Apa yang tofu plan pertama anda akan tunjuk?
Pilih satu jawapan.
Cuba
Langkah 1: alat dan folder. Kemudian tulis providers.tf (di bawah). Ia guna provider Docker, versi 4.6 atau 4.x yang lebih baharu.
Misi sebenar
tofu versiondocker infomkdir kedai-blueprint && cd kedai-blueprint && git init
0 daripada 4 langkah siap · Tanda anda disimpan.
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 4.6"
}
}
}
provider "docker" {}Cuba
Langkah 2: pelan. Baris mana yang buka kedai pada port 8080 laptop anda?
Pilih satu jawapan.
Simpan ini sebagai main.tf. Tambah outputs.tf juga: output "url" { value = "http://localhost:8080" }.
resource "docker_image" "web" {
name = "nginx:1.30-alpine"
keep_locally = true
}
resource "docker_container" "web" {
name = "kedai-kancil-web"
image = docker_image.web.image_id
ports {
internal = 80
external = 8080
}
}Cuba
Langkah 3: bina di laptop anda. Plan dahulu, sentiasa.
Misi sebenar
tofu inittofu fmt -check && tofu validatetofu plantofu apply
0 daripada 5 langkah siap · Tanda anda disimpan.
Cuba
Langkah 4: workflow plan. Binanya, kemudian simpan sebagai .github/workflows/plan.yml.
Tekan blok untuk tambah. Susun ikut urutan.
Blok
Workflow anda
Tekan satu blok di atas untuk mula.
Fail workflow .github/workflows/
name: Plan
Apa yang berjalan
Belum ada apa untuk dijalankan.
Cuba
Langkah 5: push, kemudian buka pull request yang tukar port.
Misi sebenar
printf "*.tfstate\n*.tfstate.*\n.terraform/\n" > .gitignoregit add . && git commit -m "Blueprint Kedai Kancil"git remote add origin https://github.com/YOUR-NAME/kedai-blueprint.git && git push -u origin maingit switch -c port-8081
0 daripada 5 langkah siap · Tanda anda disimpan.
Semak
Biar API awam GitHub sahkan. Taip nama pengguna anda, kemudian semak.
Semak di GitHub
- Repo kedai-blueprint anda awamBelum disemak
- Ia ada main.tfBelum disemak
- Ia ada fail lockBelum disemak
- Ia ada workflow planBelum disemak
- Workflow sudah berjalan sekurang-kurangnya sekaliBelum disemak
- Anda buka pull request di situBelum disemak
Semak
API tak nampak semua. Semak ini sendiri, kemudian kemas.
Misi sebenar
tofu destroydocker ps -a --filter name=kedai-kancil-web
0 daripada 5 langkah siap · Tanda anda disimpan.
Anda berjaya!
Kini anda boleh tulis pelan servis sebenar, binanya, dan plan setiap perubahan dalam CI.
Nak tahu lebih (pilihan)
Keselamatan: laptop anda sendiri sahaja, port 8080 mesti kosong, dan tofu destroy di hujung. Pasang OpenTofu: opentofu.org/docs/intro/install. Dengan kind pula, provider kubernetes berfungsi dengan cara sama. Di mana cerita ini tak tepat: CI buat plan dengan daftar kosong. Pasukan sebenar beri CI backend bersama (T3·1), supaya plan-nya sepadan dengan bangunan.
English
Mission 8: write Kedai Kancil’s web counter as a blueprint. Docker on your own laptop is the building site. What will your very first tofu plan show?
Step 1: tools and a folder. Then write providers.tf (below). It uses the Docker provider, version 4.6 or a newer 4.x.
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 4.6"
}
}
}
provider "docker" {}
Step 2: the blueprint. Which line opens the shop on your laptop’s port 8080?
Save this as main.tf. Add outputs.tf too: output "url" { value = "http://localhost:8080" }.
resource "docker_image" "web" {
name = "nginx:1.30-alpine"
keep_locally = true
}
resource "docker_container" "web" {
name = "kedai-kancil-web"
image = docker_image.web.image_id
ports {
internal = 80
external = 8080
}
}
Step 3: build it on your laptop. Plan first, always.
Step 4: the plan workflow. Build it, then save it as .github/workflows/plan.yml.
Step 5: push it, then open a pull request that changes the port.
Let GitHub’s public API confirm it. Type your username, then check.
The API can’t see everything. Check these yourself, then clean up.
You can now blueprint a real service, build it, and plan every change in CI.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Pasang OpenTofu · Provider Docker (kreuzwerker/docker) di OpenTofu Registry · Dokumentasi provider Docker (Terraform Registry) · Dapatkan Docker · opentofu/setup-opentofu
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?