Docker
Chạy Máy chủ thi bằng Docker trên Linux hoặc Windows.
Với gói Docker, màn Giám thị hiện cùng một IP cho mọi Máy thi. Trên máy chủ Windows hoặc Linux, dùng gói Windows hoặc gói Linux thay cho Docker.
Bạn cần thư mục cấu hình do nhóm vận hành cấp, mkcert, và đã làm xong phần Chuẩn bị trước khi cài. Mỗi hệ điều hành cần thêm:
- Trên Linux, Docker Engine và Docker Compose v2.
- Trên Windows, Docker Desktop chạy trên WSL 2 với Docker Compose 2.24.4 trở lên. Bật Start Docker Desktop when you sign in, vì Docker Desktop chỉ chạy khi có người đăng nhập Windows.
Cài Máy chủ thi
Chạy mọi lệnh dưới đây trong thư mục cấu hình.
Mở cổng 18443
Trên Windows, chạy lệnh sau trong PowerShell quản trị:
New-NetFirewallRule -DisplayName "amg-runtime 18443" -Direction Inbound -Protocol TCP -LocalPort 18443 -RemoteAddress LocalSubnet -Action AllowTrên Linux, mở cổng TCP 18443 cho LAN bằng tường lửa của máy.
Điền tệp cấu hình
Chép .env.example thành .env, rồi điền ba dòng sau:
| Dòng | Giá trị |
|---|---|
SYNC_GATEWAY_URL= | Địa chỉ AMG-Cloud |
LAN_HOST= | IP LAN của máy chủ |
IMAGE_TAG= | Phiên bản do nhóm vận hành chỉ định |
Trên Windows, xóa dấu # ở đầu dòng COMPOSE_FILE.
Tạo chứng chỉ
Thay <IP-LAN> bằng IP LAN của máy chủ:
mkcert -install
mkdir -p tls
mkcert -cert-file tls/lan.pem -key-file tls/lan-key.pem localhost 127.0.0.1 <IP-LAN>Khởi động máy chủ
docker compose pull
docker compose up -d --waitLệnh kết thúc mà không báo lỗi khi máy chủ đã chạy. Mở https://<máy-chủ-LAN>:18443/server/ để kiểm tra.
Tiếp theo, đăng ký máy chủ rồi cài chứng chỉ trên Máy thi.
Quản lý máy chủ sau khi cài
| Việc | Lệnh |
|---|---|
| Xem log | docker compose logs -f exam-runtime caddy |
| Nâng cấp | Đổi IMAGE_TAG trong .env, chạy docker compose pull, rồi chạy docker compose up -d --remove-orphans. |
Không chạy docker compose down -v, docker volume rm hay docker volume prune trên máy chủ này. Các lệnh đó xóa danh tính thiết bị và những Bài làm chưa gửi về AMG-Cloud.
Khi gặp sự cố
| Thông báo | Làm gì |
|---|---|
required variable SYNC_GATEWAY_URL is missing a value | Điền tệp .env như bước 2. |
bind source path does not exist kèm tls | Tạo chứng chỉ như bước 3. |
bind source path does not exist kèm /etc/hostname | Trên Windows, xóa dấu # ở dòng COMPOSE_FILE trong .env. |
address already in use | Đổi LAN_PORT trong .env, rồi chạy docker compose up -d. |
CLOUD_UNREACHABLE | Kiểm tra Internet, DNS và tường lửa chiều ra. |