diff --git a/build/Dockerfile b/build/Dockerfile index 016aa3f094..70690ffc1b 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,33 +1,33 @@ -# syntax=docker/dockerfile:1.7 -FROM golang:1.22 as builder +# syntax=docker/dockerfile:1.8 +FROM golang:1.22 AS builder WORKDIR /go/src/github.com/nginxinc/nginx-gateway-fabric -COPY go.mod go.sum /go/src/github.com/nginxinc/nginx-gateway-fabric +COPY go.mod go.sum /go/src/github.com/nginxinc/nginx-gateway-fabric/ RUN go mod download COPY . /go/src/github.com/nginxinc/nginx-gateway-fabric RUN make build -FROM golang:1.22 as ca-certs-provider +FROM golang:1.22 AS ca-certs-provider -FROM alpine:3.20 as capabilizer +FROM alpine:3.20 AS capabilizer RUN apk add --no-cache libcap -FROM capabilizer as local-capabilizer +FROM capabilizer AS local-capabilizer COPY ./build/out/gateway /usr/bin/ RUN setcap 'cap_kill=+ep' /usr/bin/gateway -FROM capabilizer as container-capabilizer +FROM capabilizer AS container-capabilizer COPY --from=builder /go/src/github.com/nginxinc/nginx-gateway-fabric/build/out/gateway /usr/bin/ RUN setcap 'cap_kill=+ep' /usr/bin/gateway -FROM capabilizer as goreleaser-capabilizer +FROM capabilizer AS goreleaser-capabilizer ARG TARGETARCH COPY dist/gateway_linux_$TARGETARCH*/gateway /usr/bin/ RUN setcap 'cap_kill=+ep' /usr/bin/gateway -FROM scratch as common +FROM scratch AS common # CA certs are needed for telemetry report and NGINX Plus usage report features, so that # NGF can verify the server's certificate. COPY --from=ca-certs-provider --link /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ @@ -36,11 +36,11 @@ ARG BUILD_AGENT ENV BUILD_AGENT=${BUILD_AGENT} ENTRYPOINT [ "/usr/bin/gateway" ] -FROM common as container +FROM common AS container COPY --from=container-capabilizer /usr/bin/gateway /usr/bin/ -FROM common as local +FROM common AS local COPY --from=local-capabilizer /usr/bin/gateway /usr/bin/ -FROM common as goreleaser +FROM common AS goreleaser COPY --from=goreleaser-capabilizer /usr/bin/gateway /usr/bin/ diff --git a/build/Dockerfile.nginx b/build/Dockerfile.nginx index 0e0157058f..738062d597 100644 --- a/build/Dockerfile.nginx +++ b/build/Dockerfile.nginx @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.7 +# syntax=docker/dockerfile:1.8 FROM nginx:1.27.0-alpine-otel ARG NJS_DIR diff --git a/build/Dockerfile.nginxplus b/build/Dockerfile.nginxplus index 9f4e72978d..0eb15cfc20 100644 --- a/build/Dockerfile.nginxplus +++ b/build/Dockerfile.nginxplus @@ -1,5 +1,5 @@ -# syntax=docker/dockerfile:1.7 -FROM scratch as nginx-files +# syntax=docker/dockerfile:1.8 +FROM scratch AS nginx-files # the following links can be replaced with local files if needed, i.e. ADD --chown=101:1001 ADD --link --chown=101:1001 https://cs.nginx.com/static/keys/nginx_signing.rsa.pub nginx_signing.rsa.pub diff --git a/debug/Dockerfile b/debug/Dockerfile index 854a49d86d..bc9e0e89b7 100644 --- a/debug/Dockerfile +++ b/debug/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.7 +# syntax=docker/dockerfile:1.8 # This Dockerfile builds an image with the dlv debugger. See the debugging guide in the developer docs for details # on how to use it. FROM golang:1.22-alpine AS builder diff --git a/tests/Dockerfile b/tests/Dockerfile index bbecf330d6..2fa8f18093 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -1,3 +1,3 @@ -# syntax=docker/dockerfile:1.7 +# syntax=docker/dockerfile:1.8 # this is here so we can grab the latest version of kind and have dependabot keep it up to date FROM kindest/node:v1.30.0 diff --git a/tests/conformance/Dockerfile b/tests/conformance/Dockerfile index f899e12a39..1dbd9f4660 100644 --- a/tests/conformance/Dockerfile +++ b/tests/conformance/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.7 +# syntax=docker/dockerfile:1.8 FROM golang:1.22 WORKDIR /go/src/github.com/nginxinc/nginx-gateway-fabric/tests/conformance