From ea0f9085ac7c8b2ff1df5dc5036ebe12ca0c6ad6 Mon Sep 17 00:00:00 2001 From: Pierre Fenoll Date: Thu, 13 Apr 2023 11:47:41 +0200 Subject: [PATCH 1/3] upgrade Dockerfile deps and use HEREDOC syntax Signed-off-by: Pierre Fenoll --- Dockerfile | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 72c8f676..910af5aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker.io/docker/dockerfile:1@sha256:42399d4635eddd7a9b8a24be879d2f9a930d0ed040a61324cfdf59ef1357b3b2 +# syntax=docker.io/docker/dockerfile:1.3-labs@sha256:250ce669e1aeeb5ffb892b18039c3f0801466536cb4210c8eb2638e628859bfd -FROM --platform=$BUILDPLATFORM docker.io/library/alpine:3.16 AS alpine -FROM --platform=$BUILDPLATFORM gcr.io/distroless/base:nonroot@sha256:02f667185ccf78dbaaf79376b6904aea6d832638e1314387c2c2932f217ac5cb AS distroless +FROM --platform=$BUILDPLATFORM docker.io/library/alpine:3.17 AS alpine +FROM --platform=$BUILDPLATFORM gcr.io/distroless/base:nonroot@sha256:e406b1da09bc455495417a809efe48a03c48011a89f6eb57b0ab882508021c0d AS distroless FROM alpine AS osmap-linux RUN echo linux >/os @@ -14,17 +14,18 @@ FROM osmap-$TARGETOS AS osmap FROM alpine AS fetcher WORKDIR /app RUN \ - --mount=from=osmap,source=/os,target=/os \ - set -ux \ - && apk add --no-cache curl \ - && export url=https://github.com/bojand/ghz/releases \ - && export arch=x86_64 \ - && export VERSION=$( ( curl -#fSLo /dev/null -w '%{url_effective}' $url/latest && echo ) | while read -r x; do basename $x; done) \ - && curl -#fSLo exe.tar.gz $url/download/$VERSION/ghz-$(cat /os)-$arch.tar.gz \ - && curl -#fSLo sha2 $url/download/$VERSION/ghz-$(cat /os)-$arch.tar.gz.sha256 \ - && sha256sum exe.tar.gz | grep -F $(cat sha2) \ - && tar xvf exe.tar.gz \ - && rm ghz-web* && mkdir exe && mv ghz* exe/ + --mount=from=osmap,source=/os,target=/os < Date: Thu, 13 Apr 2023 11:52:09 +0200 Subject: [PATCH 2/3] support VERSION arg Signed-off-by: Pierre Fenoll --- Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 910af5aa..2aa76f1f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,13 +13,16 @@ FROM osmap-$TARGETOS AS osmap FROM alpine AS fetcher WORKDIR /app +ARG VERSION RUN \ --mount=from=osmap,source=/os,target=/os < Date: Fri, 14 Apr 2023 08:58:34 +0200 Subject: [PATCH 3/3] add Dockerfile target to build from source Signed-off-by: Pierre Fenoll --- Dockerfile | 25 +++++++++++++++++++++++++ README.md | 6 ++++++ 2 files changed, 31 insertions(+) diff --git a/Dockerfile b/Dockerfile index 2aa76f1f..038f7119 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,33 @@ # syntax=docker.io/docker/dockerfile:1.3-labs@sha256:250ce669e1aeeb5ffb892b18039c3f0801466536cb4210c8eb2638e628859bfd FROM --platform=$BUILDPLATFORM docker.io/library/alpine:3.17 AS alpine +FROM --platform=$BUILDPLATFORM docker.io/library/golang@sha256:403f48633fb5ebd49f9a2b6ad6719f912df23dae44974a0c9445be331e72ff5e AS golang FROM --platform=$BUILDPLATFORM gcr.io/distroless/base:nonroot@sha256:e406b1da09bc455495417a809efe48a03c48011a89f6eb57b0ab882508021c0d AS distroless + +FROM golang AS builder +WORKDIR /app +ARG TARGETOS TARGETARCH +ENV CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH +COPY go.??? . +RUN \ + --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build </os FROM alpine AS osmap-macos diff --git a/README.md b/README.md index a0420ba3..e9ec0871 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,12 @@ go build . go install github.com/bojand/ghz/cmd/ghz@latest ``` +**Install using Docker** + +```sh +DOCKER_BUILDKIT=1 docker build --output=/usr/local/bin --target=ghz-binary-built https://github.com/bojand/ghz.git +``` + ## Usage ```