github.com/electroneum/electroneum-sc@v0.0.0-20230105223411-3bc1d078281e/Dockerfile (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 ./cmd/etn-sc
    18  
    19  # Pull ETN-SC 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/etn-sc /usr/local/bin/
    24  
    25  EXPOSE 8545 8546 30303 30303/udp
    26  ENTRYPOINT ["etn-sc"]
    27  
    28  # Add some metadata labels to help programatic image consumption
    29  ARG COMMIT=""
    30  ARG VERSION=""
    31  ARG BUILDNUM=""
    32  
    33  LABEL commit="$COMMIT" version="$VERSION" buildnum="$BUILDNUM"