github.com/electroneum/electroneum-sc@v0.0.0-20230105223411-3bc1d078281e/Dockerfile.alltools (about) 1 # Support setting various labels on the final image 2 ARG COMMIT="" 3 ARG VERSION="" 4 ARG BUILDNUM="" 5 6 # Build ETN-SC in a stock Go builder container 7 FROM golang:1.18-alpine as builder 8 9 RUN apk add --no-cache gcc musl-dev linux-headers git 10 11 # Get dependencies - will also be cached if we won't change go.mod/go.sum 12 COPY go.mod /electroneum-sc/ 13 COPY go.sum /electroneum-sc/ 14 RUN cd /electroneum-sc && go mod download 15 16 ADD . /electroneum-sc 17 RUN cd /electroneum-sc && go run build/ci.go install 18 19 # Pull all binaries into a second stage deploy alpine container 20 FROM alpine:latest 21 22 RUN apk add --no-cache ca-certificates 23 COPY --from=builder /electroneum-sc/build/bin/* /usr/local/bin/ 24 25 EXPOSE 8545 8546 30303 30303/udp 26 27 # Add some metadata labels to help programatic image consumption 28 ARG COMMIT="" 29 ARG VERSION="" 30 ARG BUILDNUM="" 31 32 LABEL commit="$COMMIT" version="$VERSION" buildnum="$BUILDNUM"