From 9c3535ea7cdb8b2150b07e851cf75c7cebd541d3 Mon Sep 17 00:00:00 2001 From: Dwi Siswanto Date: Sat, 29 Mar 2025 13:09:20 +0700 Subject: [PATCH] build: adds Docker manifests Signed-off-by: Dwi Siswanto --- .goreleaser.yml | 67 +++++++++++++++++++++++++++++++++++++------ Dockerfile.goreleaser | 6 ++++ 2 files changed, 64 insertions(+), 9 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index c11e3ec6b..3a9b5acc9 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -48,23 +48,72 @@ checksum: dockers: - image_templates: - - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}" - - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}" - - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}" - - "projectdiscovery/{{ .ProjectName }}:latest" + - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}-amd64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-amd64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}-amd64" + - "projectdiscovery/{{ .ProjectName }}:latest-amd64" dockerfile: Dockerfile.goreleaser use: buildx build_flag_templates: - "--pull" - - "--label=org.opencontainers.image.authors=ProjectDiscovery" + - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{ .Date }}" - - "--label=org.opencontainers.image.description=\"Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.\"" - - "--label=org.opencontainers.image.licenses=MIT" - "--label=org.opencontainers.image.ref.name={{ .Tag }}" - "--label=org.opencontainers.image.revision={{ .FullCommit }}" - - "--label=org.opencontainers.image.title={{ .ProjectName }}" - - "--label=org.opencontainers.image.url=https://github.com/projectdiscovery/{{ .ProjectName }}" - "--label=org.opencontainers.image.version={{ .Version }}" + goarch: amd64 + - image_templates: + - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}-arm64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-arm64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}-arm64" + - "projectdiscovery/{{ .ProjectName }}:latest-arm64" + dockerfile: Dockerfile.goreleaser + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/arm64" + - "--label=org.opencontainers.image.created={{ .Date }}" + - "--label=org.opencontainers.image.ref.name={{ .Tag }}" + - "--label=org.opencontainers.image.revision={{ .FullCommit }}" + - "--label=org.opencontainers.image.version={{ .Version }}" + goarch: arm64 + - image_templates: + - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}-386" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-386" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}-386" + - "projectdiscovery/{{ .ProjectName }}:latest-386" + dockerfile: Dockerfile.goreleaser + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/386" + - "--label=org.opencontainers.image.created={{ .Date }}" + - "--label=org.opencontainers.image.ref.name={{ .Tag }}" + - "--label=org.opencontainers.image.revision={{ .FullCommit }}" + - "--label=org.opencontainers.image.version={{ .Version }}" + goarch: "386" + +docker_manifests: + - name_template: "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}" + image_templates: + - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}-amd64" + - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}-arm64" + - "projectdiscovery/{{ .ProjectName }}:{{ .Tag }}-386" + - name_template: "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}" + image_templates: + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-amd64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-arm64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-386" + - name_template: "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}" + image_templates: + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}-amd64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}-arm64" + - "projectdiscovery/{{ .ProjectName }}:v{{ .Major }}-386" + - name_template: "projectdiscovery/{{ .ProjectName }}:latest" + image_templates: + - "projectdiscovery/{{ .ProjectName }}:latest-amd64" + - "projectdiscovery/{{ .ProjectName }}:latest-arm64" + - "projectdiscovery/{{ .ProjectName }}:latest-386" announce: slack: diff --git a/Dockerfile.goreleaser b/Dockerfile.goreleaser index 7007a213d..5cc768b4b 100644 --- a/Dockerfile.goreleaser +++ b/Dockerfile.goreleaser @@ -1,5 +1,11 @@ FROM alpine:latest +LABEL org.opencontainers.image.authors="ProjectDiscovery" +LABEL org.opencontainers.image.description="Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations." +LABEL org.opencontainers.image.licenses="MIT" +LABEL org.opencontainers.image.title="nuclei" +LABEL org.opencontainers.image.url="https://github.com/projectdiscovery/nuclei" + RUN apk add --no-cache bind-tools chromium ca-certificates COPY nuclei /usr/local/bin/