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