node-go
docker-node image / build (arm64) (push) Successful in 32s
docker-node image / build (amd64) (push) Successful in 55s
node-python image / build (arm64) (push) Successful in 1m2s
docker-node image / amend-manifest (push) Successful in 12s
node-python image / build (amd64) (push) Successful in 1m45s
node-python image / amend-manifest (push) Successful in 9s
docker-node image / build (arm64) (push) Successful in 32s
docker-node image / build (amd64) (push) Successful in 55s
node-python image / build (arm64) (push) Successful in 1m2s
docker-node image / amend-manifest (push) Successful in 12s
node-python image / build (amd64) (push) Successful in 1m45s
node-python image / amend-manifest (push) Successful in 9s
This commit is contained in:
@@ -14,6 +14,7 @@ Mục tiêu của thay đổi này là bổ sung thêm một base image mới ch
|
||||
- Thêm một Dockerfile mới cho image `node-go`
|
||||
- Giữ base image đồng nhất với repo: `node:lts-slim`
|
||||
- Cài Go từ tarball chính thức thay vì `apt`
|
||||
- Giữ `GO_VERSION` ở mức dễ đọc theo nhánh chính như `1.26`
|
||||
- Giữ image tối giản, chỉ cài thêm các gói hệ thống thật sự cần thiết
|
||||
- Cập nhật `README.md` để công bố image mới và các thành phần đi kèm
|
||||
|
||||
@@ -42,7 +43,7 @@ Nhược điểm:
|
||||
|
||||
Ưu điểm:
|
||||
|
||||
- Kiểm soát version Go rõ ràng bằng biến môi trường
|
||||
- Kiểm soát nhánh version Go rõ ràng bằng biến môi trường
|
||||
- Cập nhật nhanh hơn so với `apt`
|
||||
- Phù hợp hơn cho image nền dùng lại nhiều nơi
|
||||
|
||||
@@ -61,6 +62,7 @@ Image mới sẽ:
|
||||
- cài `ca-certificates`, `curl`, `git`
|
||||
- khai báo `GO_VERSION`
|
||||
- xác định kiến trúc hiện tại từ `dpkg --print-architecture`
|
||||
- nếu `GO_VERSION` là `major.minor`, tải bản `.0` tương ứng trong nhánh đó
|
||||
- tải Go tarball phù hợp từ `https://go.dev/dl/`
|
||||
- giải nén vào `/usr/local/go`
|
||||
- thêm `/usr/local/go/bin` vào `PATH`
|
||||
@@ -82,10 +84,11 @@ Tạo file `node-go.Dockerfile` với cấu trúc gần giống các Dockerfile
|
||||
5. Dùng `dpkg --print-architecture` để map:
|
||||
- `amd64` -> `linux-amd64`
|
||||
- `arm64` -> `linux-arm64`
|
||||
6. Tải tarball Go tương ứng, giải nén vào `/usr/local`
|
||||
7. Xóa file tạm và cache `apt`
|
||||
8. Khai báo `PATH=/usr/local/go/bin:${PATH}`
|
||||
9. Giữ `WORKDIR /app`
|
||||
6. Nếu `GO_VERSION` là `major.minor`, map sang `.0` để tạo version tải cụ thể
|
||||
7. Tải tarball Go tương ứng, giải nén vào `/usr/local`
|
||||
8. Xóa file tạm và cache `apt`
|
||||
9. Khai báo `PATH=/usr/local/go/bin:${PATH}`
|
||||
10. Giữ `WORKDIR /app`
|
||||
|
||||
### README
|
||||
|
||||
@@ -113,7 +116,7 @@ Sau khi implement:
|
||||
|
||||
- URL tải Go hoặc naming của tarball có thể đổi nếu `GO_VERSION` không hợp lệ
|
||||
- Mapping kiến trúc cần xử lý rõ để tránh build fail trên `arm64`
|
||||
- Nếu không pin `GO_VERSION`, output build có thể thay đổi theo thời gian; vì vậy nên khai báo version tường minh
|
||||
- Nếu cần patch mới hơn trong cùng nhánh, phải nâng thủ công trong Dockerfile
|
||||
|
||||
## Open Decisions Resolved
|
||||
|
||||
|
||||
Reference in New Issue
Block a user