github.com/goplus/gop@v1.2.6/Dockerfile (about)

     1  ARG BASE_IMAGE=golang:1.22-bookworm
     2  
     3  FROM $BASE_IMAGE AS build
     4  ARG USE_GORELEASER_ARTIFACTS=0
     5  WORKDIR /usr/local/src/gop
     6  COPY . .
     7  ENV GOPROOT=/usr/local/gop
     8  RUN set -eux; \
     9  	mkdir -p $GOPROOT/bin; \
    10  	git ls-tree --full-tree --name-only -r HEAD | grep -vE "^\." | xargs -I {} cp --parents {} $GOPROOT/; \
    11  	if [ $USE_GORELEASER_ARTIFACTS -eq 1 ]; then \
    12  		GOARCH=$(go env GOARCH); \
    13  		BIN_DIR_SUFFIX=linux_$GOARCH; \
    14  		[ $GOARCH = "amd64" ] && BIN_DIR_SUFFIX=${BIN_DIR_SUFFIX}_v1; \
    15  		[ $GOARCH = "arm" ] && BIN_DIR_SUFFIX=${BIN_DIR_SUFFIX}_$(go env GOARM | cut -d , -f 1); \
    16  		cp .dist/gop_$BIN_DIR_SUFFIX/bin/gop .dist/gopfmt_$BIN_DIR_SUFFIX/bin/gopfmt $GOPROOT/bin/; \
    17  	else \
    18  		./all.bash; \
    19  		cp bin/gop bin/gopfmt $GOPROOT/bin/; \
    20  	fi
    21  
    22  FROM $BASE_IMAGE
    23  ENV GOPROOT=/usr/local/gop
    24  COPY --from=build $GOPROOT/ $GOPROOT/
    25  ENV PATH=$GOPROOT/bin:$PATH
    26  WORKDIR /gop