From e04080bf1cd085e8661675a1bc83b374d40723c5 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 5 Jan 2025 03:16:59 +0800 Subject: [PATCH] update build files and dependencies --- Dockerfile | 6 ++--- Dockerfile.dev | 59 ------------------------------------------------ Makefile | 23 ++++++++++--------- go.mod | 8 +++---- go.sum | 16 ++++++------- scripts/build.sh | 1 + 6 files changed, 28 insertions(+), 85 deletions(-) delete mode 100644 Dockerfile.dev diff --git a/Dockerfile b/Dockerfile index 9d6dae2..e5fd4df 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,12 +22,12 @@ ENV VERSION=${VERSION} COPY scripts /src/scripts COPY Makefile /src/ +COPY cmd /src/cmd +COPY internal /src/internal +COPY pkg /src/pkg RUN --mount=type=cache,target="/go/pkg/mod" \ --mount=type=cache,target="/root/.cache/go-build" \ - --mount=type=bind,src=cmd,dst=/src/cmd \ - --mount=type=bind,src=internal,dst=/src/internal \ - --mount=type=bind,src=pkg,dst=/src/pkg \ make build && \ mkdir -p /app/error_pages /app/certs && \ mv bin/godoxy /app/godoxy diff --git a/Dockerfile.dev b/Dockerfile.dev deleted file mode 100644 index 2f8d80d..0000000 --- a/Dockerfile.dev +++ /dev/null @@ -1,59 +0,0 @@ -# Stage 1: Builder -FROM golang:1.23.4-alpine AS builder -HEALTHCHECK NONE - -# package version does not matter -# trunk-ignore(hadolint/DL3018) -RUN apk add --no-cache tzdata make - -WORKDIR /src - -# Only copy go.mod and go.sum initially for better caching -COPY go.mod go.sum /src/ - -RUN go mod download -x - -ENV GOCACHE=/root/.cache/go-build - -ARG VERSION -ENV VERSION=${VERSION} - -COPY scripts /src/scripts -COPY Makefile /src/ - -COPY cmd /src/cmd -COPY internal /src/internal -COPY pkg /src/pkg - -RUN make build && \ - mkdir -p /app/error_pages /app/certs && \ - mv bin/godoxy /app/godoxy - -# Stage 2: Final image -FROM scratch - -LABEL maintainer="yusing@6uo.me" -LABEL proxy.exclude=1 - -# copy timezone data -COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo - -# copy binary -COPY --from=builder /app /app - -# copy example config -COPY config.example.yml /app/config/config.yml - -# copy certs -COPY --from=builder /etc/ssl/certs /etc/ssl/certs - -ENV DOCKER_HOST=unix:///var/run/docker.sock -ENV GODOXY_DEBUG=0 - -EXPOSE 80 -EXPOSE 8888 -EXPOSE 443 - -WORKDIR /app - -CMD ["/app/godoxy"] \ No newline at end of file diff --git a/Makefile b/Makefile index 2aa1157..235dd85 100755 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ VERSION ?= $(shell git describe --tags --abbrev=0) -BUILD_FLAGS ?= -s -w -X github.com/yusing/go-proxy/pkg.version=${VERSION} +BUILD_FLAGS ?= -s -w +BUILD_DATE ?= $(shell date -u +'%Y%m%d-%H%M') export VERSION export BUILD_FLAGS export CGO_ENABLED = 0 @@ -43,15 +44,6 @@ run: build mtrace: bin/godoxy debug-ls-mtrace > mtrace.json -archive: - git archive HEAD -o ../go-proxy-$$(date +"%Y%m%d%H%M").zip - -repush: - git reset --soft HEAD^ - git add -A - git commit -m "repush" - git push gitlab dev --force - rapid-crash: sudo docker run --restart=always --name test_crash -p 80 debian:bookworm-slim /bin/cat &&\ sleep 3 &&\ @@ -68,4 +60,13 @@ cloc: cloc --not-match-f '_test.go$$' cmd internal pkg push-docker-io: - BUILDER=build docker buildx build --platform linux/arm64,linux/amd64 -t docker.io/yusing/godoxy-nightly --push . \ No newline at end of file + BUILDER=build docker buildx build \ + --platform linux/arm64,linux/amd64 \ + -f Dockerfile.dev \ + -t docker.io/yusing/godoxy-nightly \ + --build-arg VERSION="${VERSION}-nightly-${BUILD_DATE}" \ + --push . + +build-docker: + docker build -t godoxy-nightly \ + --build-arg VERSION="${VERSION}-nightly-${BUILD_DATE}" . \ No newline at end of file diff --git a/go.mod b/go.mod index c4e1c93..42bf0eb 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/rs/zerolog v1.33.0 golang.org/x/net v0.33.0 golang.org/x/text v0.21.0 - golang.org/x/time v0.8.0 + golang.org/x/time v0.9.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -31,7 +31,7 @@ require ( github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/gabriel-vasile/mimetype v1.4.7 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/go-jose/go-jose/v4 v4.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -66,9 +66,9 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 // indirect golang.org/x/crypto v0.31.0 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/tools v0.28.0 // indirect google.golang.org/protobuf v1.36.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/go.sum b/go.sum index 7169601..f361f2f 100644 --- a/go.sum +++ b/go.sum @@ -33,8 +33,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/gabriel-vasile/mimetype v1.4.7 h1:SKFKl7kD0RiPdbht0s7hFtjl489WcQ1VyPW8ZzUMYCA= -github.com/gabriel-vasile/mimetype v1.4.7/go.mod h1:GDlAgAyIRT27BhFl53XNAFtfjzOkLaF35JdEG0P7LtU= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-acme/lego/v4 v4.21.0 h1:arEW+8o5p7VI8Bk1kr/PDlgD1DrxtTH1gJ4b7mehL8o= github.com/go-acme/lego/v4 v4.21.0/go.mod h1:HrSWzm3Ckj45Ie3i+p1zKVobbQoMOaGu9m4up0dUeDI= github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= @@ -169,8 +169,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= -golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -183,14 +183,14 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= diff --git a/scripts/build.sh b/scripts/build.sh index cde4748..a6132dc 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,5 +1,6 @@ #!/bin/sh mkdir -p bin +BUILD_FLAGS="${BUILD_FLAGS} -X github.com/yusing/go-proxy/pkg.version=${VERSION}" echo building GoDoxy version "${VERSION}", build flags \""${BUILD_FLAGS}"\" go build -ldflags "${BUILD_FLAGS}" -pgo=auto -o bin/godoxy ./cmd