Skip to content

Docker

Image Docker phục vụ web tĩnh, đặt tại thư mục docker/.

Thành phần

File Nội dung
Dockerfile Base nginx:alpine, copy html/ vào /usr/share/nginx/html/, expose port 80
html/index.html Nội dung trang tĩnh
.gitlab-ci.yml Pipeline CI

Build & chạy local

cd docker
docker build -t tri-docker .
docker run --rm -p 8080:80 tri-docker

Truy cập http://localhost:8080.

CI/CD

Pipeline hiện chỉ có stage test (kiểm tra runner hoạt động). Stage build để build và push image lên Artifact Registry đã được soạn sẵn nhưng đang comment, cần:

  1. Tạo service account có quyền roles/artifactregistry.writer.
  2. Thêm biến CI/CD GCP_SA_KEY (Masked + Protected) chứa JSON key của service account đó.
  3. Bỏ comment phần build trong .gitlab-ci.yml.

Image được đẩy tới:

asia-southeast1-docker.pkg.dev/user-muzhdsctkweb/tri-docker-repo/tri-docker

Lưu ý: project ID trong .gitlab-ci.yml (user-muzhdsctkweb) khác với project_id mặc định trong Terraform (user-twfljuofjeac) — kiểm tra lại trước khi bật pipeline build.

Chạy trên tri-docker-vm

VM tri-docker-vm (tạo bởi Terraform) đã cài sẵn Docker Engine qua startup script. Sau khi SSH vào VM, có thể pull image từ Artifact Registry và chạy trực tiếp bằng docker run hoặc docker compose.