github.com/status-im/status-go@v1.1.0/_assets/build/Dockerfile (about)

     1  # Build status-go in a Go builder container
     2  FROM golang:1.21-alpine3.18 as builder
     3  
     4  
     5  RUN apk add --no-cache make gcc g++ musl-dev linux-headers
     6  
     7  ARG build_tags
     8  ARG build_flags
     9  ARG build_target=statusgo
    10  
    11  RUN mkdir -p /go/src/github.com/status-im/status-go
    12  WORKDIR /go/src/github.com/status-im/status-go
    13  ADD . .
    14  RUN make $build_target BUILD_TAGS="$build_tags" BUILD_FLAGS="$build_flags" SHELL="/bin/sh"
    15  
    16  # Copy the binary to the second image
    17  FROM alpine:3.18
    18  
    19  ARG build_target=statusgo
    20  
    21  LABEL maintainer="support@status.im"
    22  LABEL source="https://github.com/status-im/status-go"
    23  LABEL description="status-go is an underlying part of Status - a browser, messenger, and gateway to a decentralized world."
    24  
    25  RUN apk add --no-cache ca-certificates bash libgcc libstdc++ curl
    26  RUN mkdir -p /static/keys
    27  RUN mkdir -p /static/configs
    28  
    29  COPY --from=builder /go/src/github.com/status-im/status-go/build/bin/$build_target /usr/local/bin/
    30  COPY --from=builder /go/src/github.com/status-im/status-go/static/keys/* /static/keys/
    31  COPY --from=builder /go/src/github.com/status-im/status-go/integration-tests/config.json /static/configs/
    32  
    33  RUN ln -s /usr/local/bin/$build_target /usr/local/bin/entrypoint
    34  
    35  # 30304 is used for Discovery v5
    36  EXPOSE 8080 8545 30303 30303/udp 30304/udp
    37  
    38  ENTRYPOINT ["/usr/local/bin/entrypoint"]
    39  CMD ["--help"]