v1.0
This commit is contained in:
commit
edddd71968
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*.log
|
||||||
|
Dockerfile.*
|
31
README.md
Normal file
31
README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# dockerporter
|
||||||
|
|
||||||
|
一个可以将`images.yaml`清单中的多个来源的镜像标签构建为多平台镜像并推送到一个指定仓库的工具。
|
||||||
|
|
||||||
|
## 环境依赖
|
||||||
|
|
||||||
|
- docker
|
||||||
|
- docker buildx
|
||||||
|
- go (1.23+)
|
||||||
|
|
||||||
|
## 用法
|
||||||
|
|
||||||
|
### 用go编码运行
|
||||||
|
|
||||||
|
```sh
|
||||||
|
go run main.go
|
||||||
|
```
|
||||||
|
|
||||||
|
### 无go环境使用
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./main
|
||||||
|
```
|
||||||
|
|
||||||
|
## 问题
|
||||||
|
|
||||||
|
如果`images.yaml`清单中的镜像tag过多的话,有可能会遇到429报错:
|
||||||
|
|
||||||
|
```text
|
||||||
|
429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
|
||||||
|
```
|
5
go.mod
Normal file
5
go.mod
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module wandoubaba/dockerporter
|
||||||
|
|
||||||
|
go 1.23.2
|
||||||
|
|
||||||
|
require gopkg.in/yaml.v2 v2.4.0 // indirect
|
3
go.sum
Normal file
3
go.sum
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
958
images.yaml
Normal file
958
images.yaml
Normal file
@ -0,0 +1,958 @@
|
|||||||
|
target: "quay.io/wandoubaba517"
|
||||||
|
|
||||||
|
images:
|
||||||
|
- name: "openresty"
|
||||||
|
from: "openresty/openresty"
|
||||||
|
tags:
|
||||||
|
- tag: "1.25.3.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.25.3.2-bookworm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "golang"
|
||||||
|
from: "golang"
|
||||||
|
tags:
|
||||||
|
- tag: "1.23.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.23"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.22.8"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.22"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "python"
|
||||||
|
from: "python"
|
||||||
|
tags:
|
||||||
|
- tag: "3.13.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.11.10"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.11"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.10.15"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.10"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.9.20"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.9"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.7.18"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "nacos-server"
|
||||||
|
from: "nacos/nacos-server"
|
||||||
|
tags:
|
||||||
|
- tag: "v2.4.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "v2.3.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- tag: "v1.4.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
|
||||||
|
- name: "zookeeper"
|
||||||
|
from: "zookeeper"
|
||||||
|
tags:
|
||||||
|
- tag: "3.9.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.9"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.8.4"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.8"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.7.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
|
||||||
|
- name: "elasticsearch"
|
||||||
|
from: "docker.elastic.co/elasticsearch/elasticsearch"
|
||||||
|
tags:
|
||||||
|
- tag: "7.17.18"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.14.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- name: "kibana"
|
||||||
|
from: "docker.elastic.co/kibana/kibana"
|
||||||
|
tags:
|
||||||
|
- tag: "7.17.18"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.14.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "gitea"
|
||||||
|
from: "gitea/gitea"
|
||||||
|
tags:
|
||||||
|
- tag: "1.22.3"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.22"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "grafana"
|
||||||
|
from: "grafana/grafana"
|
||||||
|
tags:
|
||||||
|
- tag: "11.2.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "11.1.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "11.0.6"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "10.4.10"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "9.5.21"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "memcached"
|
||||||
|
tags:
|
||||||
|
- tag: "latest"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- "linux/mips64le"
|
||||||
|
- tag: "1.6.31"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- "linux/mips64le"
|
||||||
|
- tag: "1.6"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- "linux/mips64le"
|
||||||
|
- tag: "1"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- "linux/mips64le"
|
||||||
|
|
||||||
|
|
||||||
|
- name: "mongo"
|
||||||
|
tags:
|
||||||
|
- tag: "8.0.1"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.0.14"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6.0.18"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "mysql"
|
||||||
|
tags:
|
||||||
|
- tag: "9.0.1"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "9.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "9"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.4.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.4"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0.39"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5.7.37"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- tag: "5.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- tag: "5.6.51"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- tag: "5.6"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
|
||||||
|
- name: "pgadmin4"
|
||||||
|
from: "dpage/pgadmin4"
|
||||||
|
tags:
|
||||||
|
- tag: "8.12"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.11"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.10"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.9"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "portainer-ce"
|
||||||
|
from: "portainer/portainer-ce"
|
||||||
|
tags:
|
||||||
|
- tag: "latest"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.21.3-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.21.3"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "rabbitmq"
|
||||||
|
tags:
|
||||||
|
- tag: "4.0.2-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0.2-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13.7-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13.7-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12.14-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12.14-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3-management-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3-management"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "4"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13.7-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.13"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12.14-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12.14"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3.12"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "3"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "redis"
|
||||||
|
tags:
|
||||||
|
- tag: "7.4.1-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.2.6-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6.2.16-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5.0.5-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5.0-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4.1"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.2.6"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6.2.16"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "6"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5.0.5"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "5"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
|
||||||
|
- name: "postgres"
|
||||||
|
tags:
|
||||||
|
- tag: "14.13"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "14"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "15.8"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "15"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16.4"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "17.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "17"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
|
||||||
|
- name: "php"
|
||||||
|
tags:
|
||||||
|
- tag: "8.3.12-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2.24-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1.30-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0.30-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4.33-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4-fpm-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3.12-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2.24-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1.30-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0.30-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4.33-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4-cli-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3.12-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2.24-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1.30-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0.30-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4.33-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4-fpm"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3.12-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.3-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2.24-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.2-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1.30-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.1-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0.30-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "8.0-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4.33-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "7.4-cli"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "composer"
|
||||||
|
tags:
|
||||||
|
- tag: "latest"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.8.1"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.8"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.7.9"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.7"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.2.24"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "2.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.10.27"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.10"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
|
||||||
|
- name: "nginx"
|
||||||
|
tags:
|
||||||
|
- tag: "latest"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.27.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.27-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.26.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.26-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.24.0-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.24-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.27.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.27"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.26.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.26"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.24.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "1.24"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
|
||||||
|
- name: "node"
|
||||||
|
tags:
|
||||||
|
- tag: "22.9.0-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "22.9-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "22-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "22.9.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "22.9"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "22"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "20.18.0-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "20.18-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "20-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "20.18.0"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "20.18"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "20"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "18.20.4-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "18.20-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "18-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "18.20.4"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "18.20"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "18"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16.20.2-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16.20-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16-alpine"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16.20.2"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16.20"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
||||||
|
- tag: "16"
|
||||||
|
platforms:
|
||||||
|
- "linux/amd64"
|
||||||
|
- "linux/arm64"
|
151
main.go
Normal file
151
main.go
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Tag struct {
|
||||||
|
Tag string `yaml:"tag"`
|
||||||
|
Platforms []string `yaml:"platforms"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Image struct {
|
||||||
|
Name string `yaml:"name"`
|
||||||
|
From string `yaml:"from,omitempty"` // `from` 为可选字段
|
||||||
|
Tags []Tag `yaml:"tags"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Config struct {
|
||||||
|
Target string `yaml:"target"`
|
||||||
|
Images []Image `yaml:"images"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// 记录开始时间
|
||||||
|
startTime := time.Now()
|
||||||
|
|
||||||
|
// 创建日志文件名
|
||||||
|
logFileName := fmt.Sprintf("build_%s.log", startTime.Format("20060102"))
|
||||||
|
logFile, err := os.OpenFile(logFileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
|
||||||
|
if err != nil {
|
||||||
|
logErrorInfo(logFile, time.Now(),
|
||||||
|
fmt.Sprintf("Error opening log file: %v", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer logFile.Close()
|
||||||
|
|
||||||
|
// 记录程序启动时间
|
||||||
|
logStartTime(logFile, startTime)
|
||||||
|
|
||||||
|
// 读取 YAML 文件
|
||||||
|
data, err := ioutil.ReadFile("images.yaml")
|
||||||
|
if err != nil {
|
||||||
|
logErrorInfo(logFile, time.Now(),
|
||||||
|
fmt.Sprintf("Error reading YAML file: %v", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析 YAML 文件
|
||||||
|
var config Config
|
||||||
|
if err := yaml.Unmarshal(data, &config); err != nil {
|
||||||
|
logErrorInfo(logFile, time.Now(),
|
||||||
|
fmt.Sprintf("Error parsing YAML: %v", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
totalImages := 0
|
||||||
|
totalTags := 0
|
||||||
|
|
||||||
|
// 遍历每个镜像信息
|
||||||
|
for _, image := range config.Images {
|
||||||
|
// 如果 `from` 字段为空,则将其设置为 `name`(Docker Hub 官方镜像)
|
||||||
|
if image.From == "" {
|
||||||
|
image.From = image.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
imageBuilt := false // 记录是否构建过该镜像
|
||||||
|
for _, tag := range image.Tags {
|
||||||
|
totalTags++
|
||||||
|
// 根据镜像生成 Dockerfile
|
||||||
|
dockerfilePath := filepath.Join(".", fmt.Sprintf("Dockerfile.%s:%s", image.Name, tag.Tag))
|
||||||
|
if err := generateDockerfile(image.From, tag.Tag, dockerfilePath); err != nil {
|
||||||
|
logErrorInfo(logFile, time.Now(),
|
||||||
|
fmt.Sprintf("Error generating Dockerfile for %s:%s: %v", image.Name, tag.Tag, err))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// 合并所有平台为一个字符串
|
||||||
|
platforms := strings.Join(tag.Platforms, ",")
|
||||||
|
// 构建 Docker 镜像命令,添加 target
|
||||||
|
buildCmd := exec.Command("docker", "buildx", "build", "--push", "--platform", platforms, "-t", fmt.Sprintf("%s/%s:%s", config.Target, image.Name, tag.Tag), "-f", dockerfilePath, ".")
|
||||||
|
buildCmd.Stdout = os.Stdout
|
||||||
|
buildCmd.Stderr = os.Stderr
|
||||||
|
|
||||||
|
// 记录开始构建时间
|
||||||
|
buildStartTime := time.Now()
|
||||||
|
if err := buildCmd.Run(); err != nil {
|
||||||
|
logErrorInfo(logFile, time.Now(),
|
||||||
|
fmt.Sprintf("Error building image %s:%s for platforms %s: %v", image.Name, tag.Tag, platforms, err))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// 记录构建结束时间
|
||||||
|
buildEndTime := time.Now()
|
||||||
|
|
||||||
|
// 记录构建日志
|
||||||
|
logBuildInfo(logFile, buildStartTime, image.Name, tag.Tag, platforms, config.Target, buildEndTime.Sub(buildStartTime))
|
||||||
|
imageBuilt = true // 标记该镜像已成功构建
|
||||||
|
|
||||||
|
// 删除生成的 Dockerfile
|
||||||
|
if err := os.Remove(dockerfilePath); err != nil {
|
||||||
|
logErrorInfo(logFile, time.Now(),
|
||||||
|
fmt.Sprintf("Error deleting Dockerfile %s: %v", dockerfilePath, err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if imageBuilt {
|
||||||
|
totalImages++ // 仅在成功构建过一次时增加镜像计数
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算总时间
|
||||||
|
elapsedTime := time.Since(startTime)
|
||||||
|
logCompletion(logFile, elapsedTime, totalImages, totalTags)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 记录程序启动时间
|
||||||
|
func logStartTime(logFile *os.File, startTime time.Time) {
|
||||||
|
logFile.WriteString(fmt.Sprintf("Process started at: %s\n", startTime.Format(time.RFC3339)))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 记录构建信息
|
||||||
|
func logBuildInfo(logFile *os.File, startTime time.Time, imageName, tag string, platforms string, target string, duration time.Duration) {
|
||||||
|
logFile.WriteString(fmt.Sprintf("%s | Image: %s | Tag: %s | Platforms: %s | Pushed to: %s/%s:%s | Duration: %v\n",
|
||||||
|
startTime.Format(time.RFC3339), imageName, tag, platforms, target, imageName, tag, duration))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 记录报错
|
||||||
|
func logErrorInfo(logFile *os.File, startTime time.Time, errorMessage string) {
|
||||||
|
logFile.WriteString(fmt.Sprintf("%s | %s\n",
|
||||||
|
startTime.Format(time.RFC3339), errorMessage))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 记录完成时间和统计信息
|
||||||
|
func logCompletion(logFile *os.File, elapsedTime time.Duration, totalImages, totalTags int) {
|
||||||
|
logFile.WriteString(fmt.Sprintf("Build completed at: %s\n", time.Now().Format(time.RFC3339)))
|
||||||
|
logFile.WriteString(fmt.Sprintf("Total images built: %d\n", totalImages))
|
||||||
|
logFile.WriteString(fmt.Sprintf("Total tags processed: %d\n", totalTags))
|
||||||
|
logFile.WriteString(fmt.Sprintf("Total execution time: %v\n", elapsedTime))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成 Dockerfile
|
||||||
|
func generateDockerfile(fromImage, tag, filePath string) error {
|
||||||
|
dockerfileContent := fmt.Sprintf("FROM %s:%s\n", fromImage, tag)
|
||||||
|
return ioutil.WriteFile(filePath, []byte(dockerfileContent), 0644)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user